Un túnel SSH es una conexión SSH que transforma un puerto X en tu equipo, en el puerto Y de otra máquina, pasando por una tercera.
¿Se entiende? Es probable que no, así que me explicaré con detalles.
Una conexión “tradicional”, es cuando quiero acceder a un cierto servicio en otra máquina, y me conecto directamente a ella.
Pero, ¿qué pasa cuando aún necesito conectarme a esa máquina, pero por alguna razón ya no puedo conectarme directamente? En este caso, lo que se hace es usar un tunel SSH.
¿Y como funciona?
$ ssh -L
Por ejemplo, el servidor de Tareas (carretas.inf.utfsm.cl) del LabComp está restringido para ser accesado solo desde las IP’s del DI. Para conectarme a éste seria algo así como:
$ ssh -L 6666:carretas:22 rcovarru@ssh2.inf.utfsm.cl
Ok, pero ese comando extraño, ¿Qué hace?
Transforma el puerto 6666 de mi equipo, en el puerto 22 (puerto de ssh) de carretas.
Esto significa, que ahora me podré conectar “directamente” a carretas por el túnel, con:
$ ssh -p 6666 localhost -l usuario-en-carretas
Mientras que la conexión SSH esté viva, el túnel se mantendrá igual.
Esto, funciona para cualquier tipo de puerto, no solo para comunicarse por ssh. Si quieren conectar, por ejemplo, al servidor postgresql de carretas, el tunel debería ser:
$ ssh -L 6666:carretas:5432 ssh2.inf.utfsm.cl -l rcovarru
Y luego, la conexión de psql deberia ser algo así como:
$ psql -p 6666 -h localhost dbname pguser
Fuente: http://rnt.cl/tutoriales/tunel-ssh/
Es de hace tiempo, pero esta explicación es sencillamente brillante, por eso no he cambiado ni los ejemplos.
En la web de referencia hay hasta gráficos. Muy recomendable.
no puc seguir el teu blog nanu!! com ho fem??
ResponderEliminar