Tamaño: 2414
Comentario:
|
Tamaño: 3004
Comentario:
|
Los textos eliminados se marcan así. | Los textos añadidos se marcan así. |
Línea 2: | Línea 2: |
La idea de usar ProxyCommand es un opción para ejecutar automáticamente el comando ssh en el host remoto y pasar al siguiente host y reenviar todo el tráfico a través de netcat. | 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. <<TableOfContents>> |
Línea 5: | Línea 7: |
* Se configura el usuario ssh del equipo de la red privada en tú equipo. Esto inicia el proceso padre ssh. | * Se inicia un proceso padre ssh configurando el usuario ssh del equipo de la red privada en tú equipo. |
Línea 8: | Línea 10: |
* 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. * A esto se agrega un canal ssh a la conexión ssh existente entre tú equipo y el equipo 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. |
Línea 12: | Línea 14: |
{{{ +-------+ +--------------+ you ---ssh--- bastion host +-------+ +--------------+ }}} |
|
Línea 17: | Línea 26: |
== ¿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: |
|
Línea 18: | Línea 29: |
* 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 |
|
Línea 19: | Línea 34: |
== ¿Cómo hacerlo? == Para lograr está acción se debe editar el archivo configuración local de SSH ~/.ssh/config (Linux - OSX) e insertar lo siguiente: |
Un ejemplo o template para generar una conexión a la escuela puede ser: |
Línea 43: | Línea 57: |
La conexión desde tú máquina sería: | La conexión desde tú máquina se realiza del siguiente modo: |
Línea 46: | Línea 60: |
user@clustertalca | ssh clustertalca |
Línea 48: | Línea 62: |
En caso de querer traspasar datos desde tú maquina hasta el cluster: | En caso de querer traspasar datos desde tú maquina hasta el cluster se debe ejecutar lo siguiente: |
Línea 51: | Línea 65: |
scp fichero.local user@clustertalca: | scp fichero.local clustertalca: |
Línea 55: | Línea 69: |
Para copiar los datos desde el clustertalca a tú máquina: | Para copiar los datos generados desde el clustertalca hasta tú máquina se puede realizar de la siguiente forma: |
Línea 58: | Línea 72: |
scp usuariocluster@clustertalca:fichero <mi directorio local> | scp clustertalca:fichero <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.
Tabla de Contenidos
¿Cómo funciona?
- 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
+-------+ +--------------+ you ---ssh--- bastion host +-------+ +--------------+
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 configuración local de SSH ~/.ssh/config (Linux - 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 %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>