En el último de nuestros "solo los ejemplos", imagine que se encuentra en un escenario en el que desea conectarse a un servidor (o incluso navegar por una página web, etc.) en un servidor al que no puede acceder directamente. Sin embargo, tiene acceso desde su caja (localhost) a un servidor (servidor1) que puede conectarse a ese servidor (llamemos a ese servidor2).
¡Aquí se explica cómo usar un túnel ssh para esa mierda!
Supongamos que su nombre de usuario es bob, pero la única cuenta a la que tiene acceso en el host remoto (servidor2) se llama tom, solo por motivos de claridad.
Túnel desde localhost a server1 y desde localhost a server2 :
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -p 9998 tom@localhost
Notará que cuando inicia sesión en el servidor 1 en la primera línea, simplemente se sienta y cuelga allí. Eso es porque está establecido el túnel. Simplemente pulsa ctrl+z y escriba 'bg ' para poner en segundo plano el proceso ssh antes de dirigirse a ssh a través del túnel.
Si lo quiere súper seguro, necesita un aro adicional:este ejemplo abrirá un túnel desde localhost al servidor1 a través del cual se puede usar el servicio SSH en el servidor2. Luego se abre un segundo túnel desde localhost a host2 a través del primer túnel.
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -L 9999:tom@localhost:1234 -N -p 9998 localhost
Aquí hay un gran enlace con más ejemplos y explicaciones:
http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html