Diferencias entre las revisiones 10 y 25 (abarca 15 versiones)
Versión 10 con fecha 2017-10-26 16:23:24
Tamaño: 2886
Editor: FabioDuran
Comentario:
Versión 25 con fecha 2019-06-28 14:40:26
Tamaño: 2999
Editor: FabioDuran
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 7: Línea 7:
 * Se inicia un proceso padre ssh configurando el usuario ssh del equipo de la red privada en tú equipo.
 * El padre ssh crea un hijo ssh con E / S redirigido a tuneles que derivarán el tráfico de la conexión establecida (proxycommand).
 * El ssh hijo crea una conexión con la máquina de la red pública.
 * El proceso ssh en el equipo de la red pública crea una conexión tipo tcp con la máquina de la red privada deseada a través del puerto 22 (netcat).
 * A esto se agrega un canal ssh a la conexión ssh existente entre tú equipo y el equipo de la red pública (ssh.
 * Entonces el padre de la conexión ssh escribe los datos de handshake del túnel, la conexión hijo ssh los lee desde aquél túnel, los envía a través del canal ssh a ssh del equipo de la red pública; ssh lo lee y lo escribe en el socket conectado al equipo de la red privada. Del mismo modo, los datos se transmiten desde la red privada a tú equipo
En un modo simple, esto funciona de la siguiente manera:
Línea 14: Línea 9:
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====================> | |
+-----+ +------------+ +--------+
}}}
Línea 20: Línea 37:
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: 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:
Línea 32: Línea 49:
user <tu-usuario-equipo-red-privada> user tu-usuario-equipo-red-privada
Línea 34: Línea 51:
hostname <ip-equipo-red-privada> hostname ip-equipo-red-privada
Línea 36: Línea 53:
proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc %h %p 2> /dev/null proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc -w1 %h %p 2> /dev/null
Línea 38: Línea 55:


== Ejemplos: ==
== Ejemplos ==
Línea 46: Línea 61:
user: <usuariocluster> user usuariocluster
Línea 50: Línea 65:
proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc %h %p 2> /dev/null proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc -w1 %h %p 2> /dev/null
Línea 52: Línea 67:
La conexión desde tú máquina se realiza del siguiente modo: La conexión desde tú máquina se realiza del siguiente modo, instanciando el Host definido:
Línea 57: Línea 72:
En caso de querer traspasar datos desde tú maquina hasta el cluster se debe ejecutar lo siguiente: Mismo caso de querer traspasar datos desde tú maquina hasta el cluster se debe ejecutar lo siguiente:
Línea 60: Línea 75:
scp fichero.local clustertalca: scp fichero clustertalca:
}}}
{{{
scp -r directorio clustertalca:
Línea 69: Línea 87:
{{{
scp -r clustertalca:directorio <mi directorio local>
}}}

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:

  • Equipo de red pública: bioinfo.utalca.cl.
  • Equipo red privada: Todo aquél equipo que se encuentre en dependencias de la escuela.

¿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:

  • Host: identificador único
  • User: usuario de la máquina final a la que se desea conectar
  • Hostname: con la IP de la máquina final
  • proxycommand: con la instrucción de conexión a establecer

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)