Home > Sistemas > Transfiriendo ficheros a través de una cadena SSH de máquinas

Transfiriendo ficheros a través de una cadena SSH de máquinas

September 15th, 2009

Supongamos que te encuentras en la necesidad de transferir unos ficheros a través de una sesión SSH. Desde luego, puedes abrir otra consola y lanzar un scp o un sftp. Es un poco incómodo, pero funciona. Ahora bien, imagina que la única manera de acceder a la máquina destino es a través de otras máquinas. Debes conectarte a la máquina A, luego a la B. Desde la B haces un sftp a la C. Entonces desconectas de la B y haces un sftp desde la B a la A. Finalmente desconectas de la A y haces un sftp a tu máquina. Una pesadilla, ¿verdad?
Entremos al maravilloso mundo de zssh (Zmodem SSH)). Este programa es un reemplazo de ssh, soportando todos sus comandos y funcionalidades, pero tiene un interesante plus: siempre que en la máquina destino (en nuestro ejemplo, C) tenga instalado lrzsz, se pueden transferir ficheros sin abandonar la sesión y a través de todas las máquinas.
Su uso muy sencillo. Supongamos que queremos trasladar un fichero desde b.example.com hasta nuestra máquina, pasando por a.example.com. Para conectarnos debemos ejecutar:

zssh -t user@a.example.com ssh -t user@b.example.com

Entonces, buscamos el fichero que queremos transferir y ejecutamos, desde zssh:

sz fichero_de_ejemplo.txt

Luego, pulsamos Ctrl+Espacio. Se nos abrirá la consola de gestión de ficheros de zssh, donde podremos movernos al directorio de destino y entonces ejecutar:

rz

Al cabo de un rato tendremos nuestro fichero en nuestra máquina.

El funcionamiento interno de todo esto, simplificando es que existen dos programas, sz (send zmodem) y rz (receive zmodem) que se comunican a través de la sesión ssh. sz manda una secuencia, que indica que se quiere enviar un fichero. Luego, en nuestra máquina, cuando escribimos rz, se lanza el programa rz, que lee la secuencia y procede a recibir el fichero.

Categories: Sistemas Tags:
Comments are closed.
Recursos Rails