4.2. Transferencia de archivos vía el NAT

Para los usuarios del cluster que acceden remotamente vía el NAT, existe el problema de la transferencia de los archivos entre su máquina propia y el cluster. El servidor NAT no permite guardar archivos temporales, asi que se debe de utilizar la técnica de un túnel con ssh. La base de esta técnica es a base de 2 terminales. En el primero nos conectaremos al NAT creando un túnel hacia el cluster. En el segundo terminal, copiaremos los archivos utilizando este túnel. Todo ello se realiza desde su máquina personal, suponeniendo que no tiene una IP publica y accesible.

Presentamos un ejemplo de utilización de este método, para un usuario que tenga una cuenta "usuario" tanto en el servidor NAT que en Teopanzolco.

En el primer terminal, vamos a conecarnos al NAT crando al mismo tiempo un túnel. Este túnel sera con un número de puerto, que debe de ser mayor a 1024. En nuestro exemplo, proponemos 6789. Se pedira la contraseña del usuario para el NAT:

$ ssh -T -L 6789:teopanzolco.ibt.unam.mx:22 usuario@nat.ibt.unam.mx  
usuario@nat.ibt.unam.mx's password: La_contraseña_en_el_NAT

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Could not chdir to home directory /home/usuario: No such file or directory
      
Notaran que con la opción -T. no dara ningún prompt el comando ssh.

Una vez que la conección esta establecida en el primer terminal, vamos a utilizar el túnel creado en el puerto 6789 para enviar o recibir archivos directamente desde el cluster. Si quieremos copiar el archivo reads1.fastq.gz desde la máquina personal hacia teopanzolco, dejandole el mismo nombre, teclearemos el comando siguiente. El mensage de aviso de la autenticidad aparecera la primera vez que se realiza esta conección. Se entra entonces la contraseña del usuario en el cluster, esta vez!

$ scp -P 6789 reads1.fastq.gz usuario@localhost:
The authenticity of host '[localhost]:6789 ([::1]:6789)' can't be established.
ECDSA key fingerprint is SHA256:UinWwEhlAZSen26tBdl4YpiOqvp1OecMmYYvZv28LIg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:6789' (ECDSA) to the list of known hosts.
Password: La_contraseña_en_teopamzolco
reads1.fastq.gz                                     100%   25KB   5.5MB/s   00:00 
     
Si queremos copiar un archivo resultado.txt desde el cluster hacia nuestra máquina personal, quedandonos con el mismo nombre, teclearemos el comando siguiente:
$ scp -P 6789 jerome@localhost:resultado.txt  .
Password: La_contraseña_en_teopamzolco
resultado.txt                                        100%   25KB   5.8MB/s   00:00 
     
Cuando terminamos con las transferencias, no olvidemos cancelar el túnel, simplement con [CTRL]-C en el primer terminal.