SSH - ProxyCommand

ProxyCommand es un opción para ejecutar automáticamente el comando ssh en el host remoto y pasar al siguiente host reenviando todo el tráfico a través de una netcat encriptada con ssh.

¿Cómo funciona?

En un modo simple esto funciona del siguiente modo:

Se establece una conexión entre tú maquina y bioinfo.utalca.cl

+-------+             +------------+
  you      ---ssh---     bioinfo
+-------+             +------------+

bioinfo ejecuta un netcat para establecer conexión con un equipo de la red privada

+------------+                +--------+
   bioinfo      ---netcat---    server
+------------+                +--------+

Entonces tú estás conectado a través de una conexión ssh en un túnel netcat (encriptado) hasta el equipo de la red privada.

+-----+                  +------------+                +--------+
| you |                  | bioinfo    |                | server |
|     | ===ssh=over=netcat=tunnel====================> |        |
+-----+                  +------------+                +--------+

En el caso de nuestra escuela, considerar que:

¿Cómo configurar?

La configuración es bastante sencilla, sólo se debe editar el archivo configuración local de SSH ~/.ssh/config (Linux - OSX) e insertar los siguientes tag con los datos relacionados:

Un ejemplo o template para generar una conexión a la escuela puede ser:

Host clustertalca

user <tu-usuario-equipo-red-privada>

hostname <ip-equipo-red-privada>

proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc %h %p 2> /dev/null

Ejemplos:

Para el caso de acceder al clustertalca, la configuración de ssh_config sería la siguiente:

Host clustertalca

user: <usuariocluster>

hostname 10.1.1.101

proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc %h %p 2> /dev/null

La conexión desde tú máquina se realiza del siguiente modo:

ssh clustertalca

En caso de querer traspasar datos desde tú maquina hasta el cluster se debe ejecutar lo siguiente:

scp fichero.local clustertalca:

No olvidar que después del dos puntos (:) va en referencia al directorio personal ($HOME) del usuario.

Para copiar los datos generados desde el clustertalca hasta tú máquina se puede realizar de la siguiente forma:

scp clustertalca:fichero <mi directorio local>