¿Cómo enviar ssh a un servidor usando otro servidor?

¿Cómo enviar ssh a un servidor usando otro servidor?

Posible duplicado:
ssh a través de múltiples hosts

Para conectarse aservidor BPrimero tengo que hacer ssh paraservidor A. ¿Cuál es la línea de comando para acceder?servidor B?

Respuesta1

Si se puede acceder al servidor B a través de sshy solo necesita ssh(no directamente scpo sftp), esto también funciona muy bien:

ssh -t $SERVER_A ssh $SERVER_B

La -topción fuerza la asignación de un pseudo-tty incluso cuando se ejecuta un solo comando en el otro extremo. Esto es útil, ya que sshnecesita un pseudo-tty.

Como estás usando dos instancias anidadas de ssh, el carácter de escape en la sesión interna es Enter ~ ~(dos tildes). Una tilde enviará el escape al primer caparazón.

Respuesta2

No existe una forma integrada de sshhacer esto, aparte de utilizar el reenvío de puertos.

Sin embargo, hay una manera que funciona razonablemente bien: la ProxyCommandconfiguración de ssh. Puede especificar eso por host ~/.ssh/configy usarlo para especificar el comando que se ejecutará para conectarse al puerto ssh remoto.

Lo uso en varios hosts:

host serverB.example.com serverB
  ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p

Consulte la ssh(1)página del manual para obtener más detalles y, nc(1)en el netcatpaquete, el comando que estoy usando para reenviar la conexión. (Sin embargo, puede usar cualquier cosa que establezca una conexión TCP y pase entrada y salida estándar a través de ella).

información relacionada