Tunel SSH Inverso accediendo a PCs sin conexión directa a Internet

openssh_logoEn resumen, se inicia la conexión desde el equipo remoto, PC a donde queremos entrar y que se encuentra inaccesible directamente desde Internet, iniciada la conexión y creada en nuestro equipo local un puerto que redirecciona el puerto remoto de SSH a un puerto en nuestro PC local, iniciamos una sesión ssh en local al puerto redireccionado, utilizando un usuario y contraseña del equipo remoto.
PC_Local —— INTERNET —— Router_REMOTO —— PC_Destino

1) Desde el equipo Destino hay que hacer iniciar la conexión SSH inversa de la siguiente manera:

ssh -R 9999:localhost:22 usuario_pc_local@IP_PC_LOCAL

Esto significa que estamos realizando una conexión reversa (-R) y que en remoto (o sea en nuestro PC local) se abrirá un puerto «remoto», el «9999» que representará el puerto»22″ del equipo «remoto» y luego la información de conexion ssh a nuestro PC local, (ferarg@ferarg.mine.nu)

Si nuestro equipo local utiliza otro puerto diferente al 22, debemos asignarlo en la conexión desde remoto:

ssh -p 1978 -R 9999:localhost:22
usuario_pc_local@IP_PC_LOCAL

2) Logueado desde remoto en nuestro PC local, y realizada la conexión, pasamos a conectarnos al equipo «remoto» de la siguiente manera:

ssh -p 9999 usuario_remoto@localhost

Esto nos pedirá la contraseña del usuario del equipo remoto y nos conectará a él utilizando un túnel inverso de ssh.


Este tipo de conexiones es muy útil si el equipo al cual queremos conectarnos se encuentra detrás de un NAT o un router o es inaccesible desde internet.

 


Creative Commons License