Un túnel SSH es básicamente el uso de un intermediario para llegar a un host determinado. Algo así como un proxy HTTP pero sobre el protocolo SSH. Esto te permite llegar a lugares donde normalmente no tenemos acceso (como servidores de producción).

Solo basta con colgarse de un host al que nosotros sí tengamos acceso y que a su vez este tenga acceso al host restringido, de este modo podemos usarlo como “puente”.

Por lo general los servidores de producción están en una zona protegida sin salida a internet, por lo que los administradores suelen dejar una máquina conocida como “bastion” que hará las de puente para que otros puedan ingresar.

How to levantar un túnel

La forma más fácil, es usando el comando ssh. Sample:

ssh -NL 2222:hostprivado.com:22 hostpublico.com

Esto lo que hace en realidad es:

  1. Se conecta por SSH a hostpublico.com
  2. Una vez conectado, establece una nueva conexión dentro de hostpublico.com hacia hostprivado.com en el puerto 22 de este último
  3. Además, abre un puerto en tu máquina (2222) que te teletransportará mágicamente a hostprivado.com en el 22

Por lo tanto, si ahora quieres conectarte a hostprivado.com, solo tienes que ejecutar:

ssh localhost:2222

Esto simulará una conexión directa hacia hostprivado.com, pero en realidad estarás pasando por hostpublico.com antes de llegar al privado.

Y en PuTTY…

No tienes ssh en tu terminal? No problem, puedes hacer lo siguiente en PuTTY:

  1. En el menú Tunnels
  2. Ingresar “Source port” como tu puerto local
  3. En “Destination” poner el hostprivado:puerto
  4. Presionar Add y Connect

Easy peasy!