Faire des liens ssh: // ouverts avec PuTTY

15

Existe-t-il un moyen d'associer des hyperliens sur des sites Web au format ssh://10.10.10.10ouvert automatiquement et de se connecter à l'aide de PuTTY?

Je suis à la recherche d'une solution qui fonctionnera sur plusieurs navigateurs (IE et Firefox) et qui sera facile à mettre en œuvre. Je ne peux pas donner d'instructions à notre équipe d'assistance pour effectuer des modifications de registre manuellement :(

Quelqu'un sait comment faire fonctionner cela?

Mistiry
la source

Réponses:

8

Il y a une fourchette Putty nommée Kitty , son site Web comprend des instructions pour faire exactement ce que vous voulez.

Cela implique des modifications de registre, mais celles-ci sont accomplies en téléchargeant un fichier .reg et en cliquant dessus dans l'explorateur Windows (avec des privilèges d'administrateur, je suppose).

RedGrittyBrick
la source
5

PuTTY ne s'associe malheureusement pas aux ssh://URL.

Vous pouvez associer une application à un protocole manuellement. Voir l'article MSDN Enregistrement d'une application dans un schéma URI .

Fondamentalement, vous ajoutez une clé de registre comme:

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

Bien que ce qui précède passe une URL entière à la ligne de commande PuTTY. Et PuTTY ne comprend pas le ssh://préfixe. Vous devez donc ajouter un script wrapper qui supprime le ssh://et ne transmet qu'un utilisateur et un hôte à PuTTY.

Pour cela, voir:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Une autre façon utilise WinSCP . Il s'enregistre pour gérer l' ssh://URL et ouvre la session spécifiée par l'URL dans PuTTY .

(Je suis l'auteur de WinSCP)

Martin Prikryl
la source
2

Voir ceci: https://gist.github.com/sbiffi/11256316

Je voulais une solution qui n'a pas besoin de changer de mastic.

Il associe un script de base visuel aux URL ssh: // et telnet: //, qui analyse l'URL et lance putty à l'aide de paramètres standard comme putty.exe -ssh -l login.

2 avantages supplémentaires: - Le mot de passe peut être passé dans l'URL également pour l'authentification automatique - Pas besoin de changer de mastic, donc adapté à tous les patchs.

user3568910
la source
2
J'ai trouvé un moyen de le faire avec seulement des clés de registre en utilisant une PowerShellcommande. Voici.
ubomb
@ubomb FYI, il y a une réponse de 2017 qui ressemble à la cmd.exeversion de votre question. Il est peut-être suffisamment différent pour surmonter les limitations auxquelles vous avez dû faire face avant de passer à PowerShell.
jpaugh
2

Voici une classe de registre qui supprimera le ssh: // et le suivi (en fait, tous) / de l'URI avant de le passer à PuTTY afin que PuTTY puisse l'ouvrir directement:

Par utilisateur:

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

Et, pour tout le monde sur le système:

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

Modifiez le chemin du fichier en fonction de vos besoins.

/ V: ON est identique à «SetLocal EnableDelayedExpansion»

/ c exécute la commande

J'ai défini params sur le paramètre qui est 'ssh: //domain.tld/'. Ensuite, j'enlève le 'ssh: //' avec le '! Params: ssh: // =!', Qui est un remplacement pour 'ssh: //' à '' sur les paramètres variables. J'attribue cela à params, maintenant params = 'domain.tld /'. Je le passe ensuite à putty et fais une autre recherche de remplacement pour remplacer '/' par '' pour supprimer la barre oblique de fin que Windows met, laissant 'domain.tld' que PuTTY peut utiliser.

Cela me permet de tout traiter dans la commande entrée dans l'entrée de registre. Il ne fait aucune sorte de nettoyage du tout et est facilement exploitable (Ex. Ssh: // && notepad ouvre le bloc-notes), donc vous voudrez peut-être changer l'URI en quelque chose que vous seul connaissez.

Nathan Ladwig
la source