Cómo copiar archivos en tu red LAN a través de SSH

SSH (Secure SHell) es el nombre de un protocolo que sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos. Además, SSH nos permite copiar datos de forma segura (la información viaja encriptada). Así que, si en ambas máquinas tenés Linux y querés copiar datos sin instalar SAMBA, no dejes de probar esta opción. ¡Podés usarla directo desde Nautilus!

Usando Nautilus

1.- Instalar openssh-server en la compu con la que queremos conectarnos. En realidad, si suponemos que en algún momento vamos a querer conectarnos desde la otra compu a la que estamos usando actualmente, sería lógico instalar openssh-server en las 2 (o más) máquinas.

sudo apt-get install openssh-server

2.- Podés reiniciar las compus o ejecutar openssh-server.

3.- En la máquina desde la que vas a controlar toda la operación, abrí Nautilus y presioná Ctrl+L para poder escribir en la barra de direcciones. Escribí ssh://NROIP. La primera vez que te conectes a esa compu va a salir un mensaje diciendo que la autenticidad del host no puede llevarse a cabo. Seleccioná la opción para que siga adelante.

4.- Te va a pedir el nombre de usuario y contraseña con el que te querés loguear en la máquina a la que querés acceder.

5.- ¡A navegar! 

Desde el terminal

1.- En la compu desde la cual vas a controlar toda la operación escribí:

ssh NRO_IP

2.- Te va a pedir la contraseña y, luego, vas a poder acceder a todos los archivos de la compu remota.

3.- Para desloguearte presioná Ctrl+D (si tenés Bash) o escribí:

logout
En caso de que luego de conectarte exitosamente varias veces, de repente, se niegue a conectarse. Probá borrando la lista de hosts conocidos, ejecutando el siguiente comando en la computadora desde la que querés acceder: rm ~/.ssh/known_hosts.

Usando SCP

SCP es un complemento de SSH que nos permite copiar archivos de forma rápida y segura.

La sintaxis es bien simple:

scp archivo usuario@servidor:ruta
Nota: En caso de que te salga el error «ssh: Could not resolve hostname earendil-desktop: Name or service not known lost connection», probá reemplazando servidor por el número de IP del servidor. Gracias a Snocks, sabemos que también es posible añadir una línea, con el formato «IP nombre_host», al archivo /etc/hosts. Ej.: 192.168.1.101 earendil-desktop.

Para copiar a la inversa, desde el computador remoto al tuyo, simplemente invertí el orden:

scp usuario@servidor:ruta/archivo ruta_local

O sea, por ejemplo, si quisiéramos mandar algo a la compu remota:

scp lista.txt earendil@earendil-desktop:~/miscosas

Este comando copia el archivo lista.txt de la compu que estoy usando a la carpeta ~/miscosas en mi compu remota. El dueño de este archivo será el usuario earendil (de mi compu de remota).

Para copiar carpetas completas, sólo hace falta agregar el parámetro -r:

scp -r ~/fotos earendil@earendil-desktop:~/miscosas

Este comando copia la carpeta fotos, alojada en el HOME de la compu que estoy usando, a la carpeta miscosas, que se encuentra en el HOME de mi compu remota.

Ahora, el mismo proceso a la inversa sería:

scp earendil@earendil-desktop:~/miscosas/fotos ~

Esto copiaría la carpeta ~/miscosas/fotos/ de la compu remota a la carpeta HOME de la compu que estoy usando.

Por último, es importante tener en cuenta que la ruta por defecto es tu carpeta de usuario. Si querés copiar algo hacia o desde ahí, podés omitir la ruta:

scp lista.txt earendil-desktop:

En este caso, como el usuario se repite en ambas máquinas no hace falta escribirlo. Además, estoy copiando de HOME a HOME, razón por la cual tampoco es necesario escribir la ruta completa de los archivos.