¿Cómo hago un túnel SSH a través de 2 hosts?

¿Cómo hago un túnel SSH a través de 2 hosts?

Estoy trabajando desde una red que bloquea algunos puertos altos, lo que me impide realizar SSH en mi máquina Windows en mi red doméstica desde mi Mac. Normalmente uso el siguiente comando para establecer un túnel al que me conecto con el cliente de Escritorio remoto en OS X.

ssh -p 22601 -L3389:Windows:3389 user@Ubuntu1 -N

En este caso tengo 2 máquinas:

  • Servidor A: Ubuntu1 (puerto 22601)
  • Servidor B: Windows (puerto 3389)

Para solucionar el bloqueo del puerto 22601 en mi red actual, podría hacer un túnel a través de otra máquina. Llamémoslo Ubuntu2 y tiene un servidor SSH ejecutándose en el puerto 22. Probé un par de combinaciones, pero parece que no puedo hacer que esta conexión funcione. Tengo el mismo acceso a la clave pública SSH para Ubuntu 1 y 2. En todos los casos estoy usando el mismo nombre de usuario.

¿Qué línea de comando debería ejecutar para hacer esto? ¿Tengo que hacer algo más en la configuración SSHd en Ubuntu2?

Respuesta1

Eche un vistazo a lo siguiente:

http://blog.allanglesit.com/2011/11/ssh-hop-through-multiple-hosts/

Encadenarlos junto con los números de puerto relevantes debería ser suficiente.

Alternativamente, puedes usar ProxyCommand para hacerlo más transparente:

http://backdrift.org/transparent-proxy-with-ssh

información relacionada