Hacer ssh: // enlaces abiertos con PuTTY

15

¿Hay alguna forma de asociar hipervínculos en sitios web que están en el formato que ssh://10.10.10.10se abre y conecta automáticamente mediante PuTTY?

Estoy buscando una solución que funcione entre navegadores (IE y Firefox) y que sea fácil de implementar. No puedo dar instrucciones a nuestro equipo de soporte para realizar modificaciones de registro manualmente :(

¿Alguien sabe cómo hacer que eso funcione?

Mistiry
fuente

Respuestas:

8

Hay un tenedor de masilla llamado Kitty , su sitio web incluye instrucciones para hacer exactamente lo que quieres.

Implica cambios en el registro, pero estos se logran descargando un archivo .reg y haciendo clic en él en el explorador de Windows (con privilegios de administrador, supongo).

RedGrittyBrick
fuente
5

PuTTY desafortunadamente no se asocia con elssh:// URL.

Puede asociar una aplicación con un protocolo manualmente. Consulte el artículo de MSDN Registro de una aplicación en un esquema URI .

Básicamente agrega una clave de registro como:

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

Aunque lo anterior pasa una URL completa a la línea de comandos PuTTY. Y PuTTY no entiende el ssh://prefijo. Por lo tanto, tendría que agregar un script de envoltura que elimine ssh://y pase solo un usuario y un host a PuTTY.

Para eso, consulte:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Otra forma es usar WinSCP . Se registra para manejar la ssh://URL y abre la sesión especificada por la URL en PuTTY .

(Soy el autor de WinSCP)

Martin Prikryl
fuente
2

Vea esto: https://gist.github.com/sbiffi/11256316

Quería una solución que no necesita cambiar la masilla.

Asocia un script visual básico a ssh: // y telnet: // URL, que analiza la URL y lanza masilla utilizando parámetros estándar como putty.exe -ssh -l login.

2 ventajas adicionales: - La contraseña se puede pasar en la URL también para la autenticación automática - No es necesario cambiar la masilla, por lo que se adapta a todos los parches.

usuario3568910
fuente
2
Descubrí una manera de hacerlo con solo claves de registro usando un PowerShellcomando. Aqui tienes.
ubomb
@ubomb FYI, hay una respuesta de 2017 que se parece a la cmd.exeversión de su pregunta. Quizás sea lo suficientemente diferente como para superar las limitaciones que enfrentó antes de cambiar a PowerShell.
jpaugh
2

Aquí hay una clase de registro que eliminará el ssh: // y el final (en realidad, todos) / del URI antes de pasarlo a PuTTY para que PuTTY pueda abrirlo directamente:

Por usuario:

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

Y, para todos en el sistema:

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

Cambie la ruta del archivo según sus necesidades.

/ V: ON es lo mismo que 'SetLocal EnableDelayedExpansion'

/ c ejecuta el comando

Configuré parámetros para el parámetro que es 'ssh: //domain.tld/'. Luego quito el 'ssh: //' de él con '! Params: ssh: // =!', Que es un sustituto de búsqueda para 'ssh: //' a '' en los parámetros variables. Lo asigno de nuevo a params, ahora params = 'domain.tld /'. Luego lo paso a masilla y hago otra búsqueda de reemplazo para reemplazar '/' con '' para eliminar la barra diagonal que Windows pone, dejando 'domain.tld' que PuTTY puede usar.

Esto me permite procesarlo todo en el comando ingresado en la entrada del registro. No hace ningún tipo de desinfección y es fácilmente explotable (por ejemplo, ssh: // && notepad abre notepad), por lo que es posible que desee cambiar el URI a algo que solo usted conoce.

Nathan Ladwig
fuente