SSH inverso o Reverse ssh para acceder a mi escritorio desde cualquier parte
Hace ya muchos años me pasé a Pepephone tanto en móvil como en conexión a Internet en casa. Una de las poquísimas cosas que he perdido es el tener una IP pública a la que conectarme desde fuera; lo que tiene Pepephone es NAT, con lo que tienes salida a todos los servicios sin problema, pero no puedes acceder a tu red desde Internet.
Pero gracias a la excelente herramienta SSH uno se puede conectar desde donde quiera.
El único requisito, aparte de la obviedad de tener instalado SSH, es disponer de una máquina de salto. Para esta finalidad voy a utilizar uno de los múltiples servidores que tengo, en particular uno que uso para mis proyectos.
El único requisito, aparte de la obviedad de tener instalado SSH, es disponer de una máquina de salto. Para esta finalidad voy a utilizar uno de los múltiples servidores que tengo, en particular uno que uso para mis proyectos.
Descripción de los elementos
desktop: ordenador de casa al que quiero acceder.
server: servidor de salto que voy a utilizar para poder conectarme.
remote: el ordenador desde el que me conecto desde fuera de casa.
Cómo conectarse
Normalmente, con ssh creamos un tunel para conectarnos a un servidor que está en remoto. Lo que haremos será crear un tunel inverso, o reverse ssh, o ssh inverso, como cada uno prefiera; esto crea un tunel pero que permite conectarse a la máquina que ejecuta este comando desde la máquina destino.
Es decir, si normalmente ssh ubuntu@server crea un tunel y una conexión al servidor server, ssh -R 9000:localhost:22 ubuntu@server creará un tunel para poder conectarse a localhost desde ese server, y a través del puerto 9000.
Entonces:
En desktop ejecutamos
ssh -p 22022 -R 9000:localhost:22 -R 5900:localhost:5900 ubuntu@server
En el servidor, nada.
En remote:
ssh ubuntu@server
y una vez conectados al server, ejecutamos
ssh -p 9000 mi_user_en_desktop@localhost
para conectar a server y arrancar vnc en remote.
Después, nuevamente en remote
ssh -L 5900:localhost:5900 ubuntu@server -N
para crear el tunel que permite conectar desde remote a desktop, usando un tunel que pasa por server.
Finalmente, en remote arrancamos el programa VNC, escribimos esta dirección: localhost:5900
et voila
Bonus: autossh
Configurar autossh para que arranque este tunel inverso, de manera que si el tunel se cae, se pierde la conexión, etc., esta utilidad volverá a crear el tunel cuando pueda.
Etiquetas: conectividad, reverse ssh, ssh, ssh inverso

0 Comments:
Publicar un comentario
<< Home