Usar el archivo de configuración SSH con Putty [cerrado]

1

Estoy usando SourceTree (una GUI de Git) que usa PuTTY como cliente SSH. Necesito introducir algo de código en un repositorio para el cual necesito hacer un túnel a través de SSH para hacerlo. El problema es que el repositorio y el servidor de autenticación SSH están en servidores separados. Por lo tanto, necesito iniciar sesión en un servidor y luego empujar a otro.

Me dieron el siguiente archivo config pero no sé cómo usarlo con PuTTY:

Host login
HostName login.nets.*******.**

Host zeus
HostName zeus.nets.*******.**
ProxyCommand ssh login nc %h %p 2> /dev/null
#ProxyCommand ssh login -W %h:%p
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa
    
pregunta Sam Rad 23.04.2014 - 13:24
fuente

1 respuesta

5

PuTTY no almacena su configuración en un archivo . Sin embargo, PuTTY puede usar un "comando proxy", tal como se describe aquí .

En su caso, el archivo de configuración de ejemplo muestra que debe haber dos conexiones SSH encapsuladas:

  • El SSH externo se realiza para alojar login.nets.*** . Cuando se realiza esa conexión, el comando nc se ejecuta en ese host: básicamente reenvía los bytes de datos al puerto 22 en el host interno zeus.nets.*** .

  • El SSH interno se realiza nuevamente desde su máquina, al host zeus.nets.*** , con todos los bytes de datos enviados a través del SSH externo.

En la opción ProxyCommand , la parte ssh login es la invocación de la SSH externa cuando el usuario (o su aplicación GUI) intenta conectarse a "zeus". No es obvio si el mismo PuTTY se puede invocar de esa manera: is a línea de comando pero también necesita el" PuTTY interno "para reenviar todos sus bytes al" PuTTY externo ", y no está claro si ese" PuTTY externo "aceptará los bytes en su "entrada estándar" (Windows no es Unix y, además, PuTTY no espera ejecutarse en un terminal o en bytes sin procesar; más intenta abrir su propia ventana).

Alternativas posibles:

  • Intente utilizar reenvío de puertos . En ese caso, inicia manualmente un PuTTY a login.nets.*** , con un reenvío de puerto del puerto local 5000 (es un ejemplo) al host remoto zeus.nets.*** y al puerto remoto 22. Luego, configura su GUI para hablar (con PuTTY) para localhost en el puerto 5000. Cuando la GUI inicia el PuTTY que se conecta a localhost en el puerto 5000, el otro PuTTY (el que inició manualmente) reenvía los bytes al host login.nets.*** con instrucciones para abrir una conexión desde ese host a zeus.nets.*** en el puerto 22.

    Esto puede o no funcionar, dependiendo de la configuración del servidor SSH en login.nets.*** (el administrador de sistemas puede habilitar o deshabilitar el soporte para tales túneles).

  • Usa un cliente SSH similar a Unix, por ejemplo, a través de Cygwin . Dado que este es el habitual OpenSSH , podrá leer y usar el archivo de configuración SSH provisto, y hacer la invocación anidada. Por supuesto, no hay garantía de que su aplicación "SourceTree" pueda configurarse para usar dicho cliente SSH.

respondido por el Thomas Pornin 23.04.2014 - 14:33
fuente

Lea otras preguntas en las etiquetas