Otwórz łącza ssh: // za pomocą PuTTY


15

Czy istnieje sposób na powiązanie hiperłączy w witrynach, które są w formacie ssh://10.10.10.10automatycznie otwieranym i łączonym za pomocą PuTTY?

Szukam rozwiązania, które będzie działać w różnych przeglądarkach (IE i Firefox) i jest łatwe do wdrożenia. Nie mogę przekazać instrukcji naszemu zespołowi pomocy technicznej, aby ręcznie edytować wpisy rejestru :(

Czy ktoś wie, jak to zrobić?

Odpowiedzi:


8

Istnieje widelec Putty o nazwie Kitty , jego strona internetowa zawiera instrukcje dotyczące robienia dokładnie tego, co chcesz.

Wiąże się to ze zmianami rejestru, ale dokonuje się tego poprzez pobranie pliku .reg i kliknięcie go w Eksploratorze Windows (chyba z uprawnieniami administratora).


5

PuTTY niestety nie kojarzy się z ssh://adresami URL.

Możesz ręcznie powiązać aplikację z protokołem. Zobacz artykuł MSDN Rejestracja aplikacji w systemie URI .

Zasadniczo dodajesz klucz rejestru, taki jak:

[HKEY_CLASSES_ROOT\ssh]
@="URL: SSH Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\ssh\DefaultIcon]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\",0"

[HKEY_CLASSES_ROOT\ssh\shell]

[HKEY_CLASSES_ROOT\ssh\shell\open]

[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\""

Chociaż powyższe przekazuje cały adres URL do wiersza polecenia PuTTY. A PuTTY nie rozumie ssh://przedrostka. Trzeba więc dodać skrypt opakowujący, który usuwa ssh://i przekazuje tylko użytkownika i hosta do PuTTY.

Aby to zobaczyć:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Innym sposobem jest użycie WinSCP . To rejestruje się obsłużyć ssh://URL i otwiera sesję określony przez URL w PuTTY .

(Jestem autorem WinSCP)


2

Zobacz: https://gist.github.com/sbiffi/11256316

Chciałem rozwiązania, które nie musi zmieniać kitu.

Kojarzy wizualny skrypt podstawowy z adresami URL ssh: // i telnet: //, które analizują adres URL i uruchamiają kit przy użyciu standardowych parametrów, takich jak putty.exe -ssh -l login.

2 dodatkowe zalety: - Hasło można podać w adresie URL również w celu automatycznego uwierzytelnienia - Nie trzeba zmieniać szpachli, dzięki czemu jest dostosowany do wszystkich poprawek.


2
Wymyśliłem sposób, aby to zrobić za pomocą samych kluczy rejestru za pomocą PowerShellpolecenia. Proszę bardzo.
ubomb

@ubomb FYI, istnieje odpowiedź z 2017 roku, która wygląda podobnie do cmd.exewersji w twoim pytaniu. Być może jest wystarczająco inny, aby pokonać ograniczenia, które napotkałeś przed przejściem do PowerShell.
jpaugh

2

Oto klasa rejestru, która usunie ssh: // i trailing (właściwie wszystko) / z identyfikatora URI przed przekazaniem go do PuTTY, aby PuTTY mógł je bezpośrednio otworzyć:

Na użytkownika:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CURRENT_USER\Software\Classes\ssh\shell]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""

I dla wszystkich w systemie:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""

Zmień ścieżkę do pliku w zależności od potrzeb.

/ V: ON jest taki sam jak „SetLocal EnableDelayedExpansion”

/ c uruchamia polecenie

Ustawiam parametry na parametr, który jest „ssh: //domain.tld/”. Następnie usuwam z niego słowo „ssh: //” za pomocą parametru „! Params: ssh: // =!”, Który jest zamiennikiem funkcji „ssh: //” na „” na params zmiennych. Przydzielam to z powrotem params, teraz params = 'domain.tld /'. Następnie przekazuję go do putty i wykonuję kolejną operację find-replace, aby zamienić „/” na „”, aby usunąć końcowy ukośnik nakładany przez system Windows, pozostawiając „domain.tld”, którego może używać PuTTY.

To pozwala mi przetworzyć to wszystko w poleceniu wpisanym we wpisie rejestru. W ogóle nie powoduje dezynfekcji i jest łatwy do wykorzystania (np. Ssh: // && notepad otwiera notatnik), więc możesz chcieć zmienić URI na coś, co tylko ty znasz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.