Un servidor con acceso ssh puede dar mucho más de si de lo que uno se imagina, permite acceder a la máquina no sólo para trabajar contra una terminal, también permite redirigir tráfico desde la máquina a la que nos conectamos. Veamos tres de casos prácticos, muy útiles.

Accediendo remotamente a las X’s: Esta es muy sencilla y muy potente, sólo hay que conectar a la máquina con la opción «-X».Esta opción permite ejecutar aplicaciones con entorno gráfico, la salida «gráfica» de la aplicación la veremos en nuestra máquina pero la aplicación realmente se está ejecutando en la máquina remota.


tunel para las X's

Accediendo a recursos privados: Si queremos acceder a un recurso que sólo está accesible localmente en una máquina remota, por ejemplo hemos puesto a bajar cosas con ml-donkey en un servidor y queremos acceder a la interfaz web que está escuchando en localhost:8080 (en el puerto 8080 pero sólo con acceso local en la máquina) desde nuestro portátil.

Tunel con ssh

Nuestro servidor está en 192.168.0.1, para poder acceder a la interfaz web vamos a establecer un túnel entre un puerto local de nuestro portátil ( por ejemplo el puerto 2505) a un puerto del servidor. Para este caso nos conectaremos por ssh así:

ssh -L2505:localhost:8080 192.168.0.1

Mientras tengamos la conexión abierta podremos acceder al puerto remoto 8080 conectándonos a nuestro puerto local 2505. En este ejemplo abriríamos un firefox y teclearíamos como dirección «http://localhost:2505» ya tendríamos acceso al servidor web del ml-donkey.

Accediendo a recursos utilizando el servidor como puente: Esta es una variante del anterior, cuando usamos la opción «-L» no estamos limitados a establecer conexiones locales al servidor al que nos conectamos, podemos utilizar el servidor para acceder a un recurso de otra máquina.

Por ejemplo en la universidad si una máquina genera mucho tráfico de salida la máquina es penalizada durante un tiempo, sin embargo las máquinas dadas de alta como servidores no tienen esa restricción.

Si tenemos cerca una máquina con ssh dada de alta como servidor podemos usarla como puente, en este caso para subir ficheros de gran tamaño a la página web:

# En una terminal(1): Establecemos primero el tunel
ssh -L8022:www.pplux.com:22 mi_servidor_puente
# En otra terminal(2): ahora subimos todos los zips  al servidor real
scp -P8022 *.zip localhost:ruta_donde_lo_quiero_dejar

Lo que hemos hecho es:

  • Nos conectamos al servidor_puente por ssh y establecemos un tunel entre el puerto local 8022 y el puerto 22 de la máquina real a la que me quiero conectar.
  • Después en otra terminal ejecutamos un scp con el puerto 8022 en la máquina local y todo el tráfico será reenviado a la máquina real (www.pplux.com) a través del servidor puente.

Sencillo, no? 🙂