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 de la siguiente manera:

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 de configuración local de SSH ubicado en /home/user/.ssh/config (Linux) o /Users/user/.ssh/config (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 -w1 %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 -w1 %h %p 2> /dev/null

La conexión desde tú máquina se realiza del siguiente modo, instanciando el Host definido:

ssh clustertalca

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

scp fichero clustertalca:

scp -r directorio 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>

scp -r clustertalca:directorio <mi directorio local>

cluster/ssh-proxycommand (última edición 2019-06-28 14:40:26 efectuada por FabioDuran)