Öffnen Sie ssh: // -Links mit PuTTY

15

Gibt es eine Möglichkeit, Hyperlinks auf Websites zuzuordnen, die im Format ssh://10.10.10.10automatisch geöffnet und mit PuTTY verbunden werden?

Ich bin auf der Suche nach einer Lösung, die browserübergreifend (IE und Firefox) funktioniert und einfach zu implementieren ist. Ich kann unserem Support-Team keine Anweisungen zur manuellen Bearbeitung der Registrierung geben :(

Weiß jemand, wie das funktioniert?

Mistiry
quelle

Antworten:

8

Es gibt eine Kittgabel namens Kitty , deren Website Anweisungen enthält , um genau das zu tun, was Sie wollen.

Es sind zwar Änderungen an der Registrierung erforderlich, diese werden jedoch durchgeführt, indem Sie eine .reg-Datei herunterladen und im Windows-Explorer darauf klicken (vermutlich mit Administratorrechten).

RedGrittyBrick
quelle
4

PuTTY verbindet sich leider nicht mit den ssh://URLs.

Sie können eine Anwendung manuell mit einem Protokoll verknüpfen. Weitere Informationen finden Sie im MSDN-Artikel Registrieren einer Anwendung in einem URI-Schema .

Grundsätzlich fügen Sie einen Registrierungsschlüssel wie folgt hinzu:

[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\""

Das oben Gesagte übergibt jedoch eine ganze URL an die PuTTY-Befehlszeile. Und PuTTY versteht das ssh://Präfix nicht. Sie müssten also ein Wrapper-Skript hinzufügen, das das entfernt ssh://und nur einen Benutzer und einen Host an PuTTY übergibt.

Siehe dazu:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Eine andere Möglichkeit ist die Verwendung von WinSCP . Es registriert sich selbst, um die ssh://URL zu verarbeiten, und öffnet die durch die URL in PuTTY angegebene Sitzung .

(Ich bin der Autor von WinSCP)

Martin Prikryl
quelle
2

Siehe hierzu: https://gist.github.com/sbiffi/11256316

Ich wollte eine Lösung, die Kitt nicht ändern muss.

Es ordnet ssh: // und telnet: // URLs ein Visual Basic-Skript zu, das die URL analysiert und putty unter Verwendung von Standardparametern wie putty.exe -ssh -l login startet.

2 zusätzliche Vorteile: - Passwort kann in URL auch zur automatischen Authentifizierung übergeben werden - Kitt muss nicht gewechselt werden, daher an alle Patches angepasst.

user3568910
quelle
2
Ich habe eine Möglichkeit gefunden, dies mit nur Registrierungsschlüsseln mithilfe eines PowerShellBefehls zu tun . Bitte schön.
Ubomb
@ubomb FYI, es gibt eine Antwort von 2017 , die der cmd.exeVersion in Ihrer Frage ähnelt . Vielleicht ist es anders genug, um die Einschränkungen zu überwinden, denen Sie vor dem Wechsel zu PowerShell ausgesetzt waren.
Jpaugh
2

Hier ist eine Registrierungsklasse, die ssh: // und das nachfolgende (eigentlich alle) / aus der URI entfernt, bevor sie an PuTTY übergeben wird, damit PuTTY sie direkt öffnen kann:

Pro Benutzer:

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:/=!\""

Und für alle im System:

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:/=!\""

Ändern Sie den Dateipfad entsprechend Ihren Anforderungen.

/ V: ON ist dasselbe wie 'SetLocal EnableDelayedExpansion'

/ c führt den Befehl aus

Ich setze params auf den Parameter 'ssh: //domain.tld/'. Dann entferne ich das 'ssh: //' mit '! Params: ssh: // =!', Was ein Suchen-Ersetzen für 'ssh: //' nach '' in den variablen Parametern ist. Ich weise das zurück zu params, jetzt params = 'domain.tld /'. Ich übergebe es dann an putty und ersetze '/' durch '', um den abschließenden Schrägstrich zu entfernen, den Windows anfügt, und lasse 'domain.tld', den PuTTY verwenden kann.

Auf diese Weise kann ich alles in dem Befehl verarbeiten, der im Registrierungseintrag eingegeben wurde. Es wird überhaupt nicht bereinigt und kann leicht ausgenutzt werden (Beispiel: ssh: // && notepad opens notepad). Vielleicht möchten Sie die URI in etwas ändern, das nur Ihnen bekannt ist.

Nathan Ladwig
quelle