Al acceder a un servidor Linux, tiene algunas opciones. Si es un servidor con una interfaz de usuario, puede utilizar VNC, pero la opción más común es iniciar sesión en un servidor sin cabeza con Secure Shell o SSH. Es un protocolo seguro y encriptado que le da acceso a un sistema remoto a través de un cliente SSH. Sin embargo, es posible que desee enviar algunos archivos a un servidor. Para eso, puede usar un programa llamado Secure Copy, o SCP, que se ejecuta sobre el protocolo SSH incondicional para transferir rápidamente archivos a través de su red a un sistema remoto. Aquí le mostramos cómo transferir archivos de forma segura usando SCP en Linux.
Configurar SSH
En su servidor (o en cualquier sistema remoto al que desee acceder), deberá instalar un servidor SSH. El más común en Linux es el servidor OpenSSH. Para instalarlo, puede ejecutar uno de los siguientes comandos:
# Debian/Ubuntu-based server sudo apt install openssh-server # Fedora/Centos sudo dnf install openssh-server

Dependiendo de su distribución, es posible que deba permitir SSH a través de algunos firewalls de software. En Ubuntu, este problema no existe, pero en CentOS, también tendrá que ejecutar los siguientes comandos:
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload


En este punto, necesitará un cliente SSH. En la mayoría de las distribuciones, tienes instalado el cliente OpenSSH. Pero, si no lo hace, instálelo con el siguiente comando:
# Debian/Ubuntu-based distro sudo apt install openssh-client # Fedora sudo dnf install openssh-client
Conexión a su sistema a través de SSH
Asegurémonos de que SSH funcione antes de intentar jugar con SCP. Antes de poder conectarse a través de SSH, debe descubrir la dirección IP del servidor. En los servidores gráficos, la dirección IP se muestra en el subprograma Red en Configuración del sistema. En la mayoría de los servidores, debe utilizar el ip
comando en la terminal.
ip a s

En la salida, busque la línea que comienza con inet
debajo eth0
o enp1s0
, dependiendo de cómo esté conectada su interfaz de red al sistema. En mi caso, es 192.168.122.201.
Para probar la conexión SSH, muévase a la máquina cliente de Linux y escriba:
ssh user@192.168.122.201
Cambie el «usuario» por el nombre de usuario real en el servidor.

Ingrese la contraseña de esa cuenta y estará en el negocio. Si tiene una pregunta sobre la “no se puede establecer la autenticidad del anfitrión”, simplemente responda “sí” a la pregunta. Es un control de seguridad diseñado para asegurarse de que se está conectando a su servidor real y no a un impostor. Debería ver aparecer el mismo mensaje en su sistema cliente que ve al iniciar sesión directamente en el servidor, y eso significa que su conexión fue exitosa. También debe configurar sus conexiones SSH para obtener la máxima seguridad antes de continuar con el siguiente paso.
Uso de SCP para transferir archivos
Ahora que ha probado la conexión SSH, puede empezar a copiar archivos entre las dos máquinas. La copia segura se logra utilizando el scp
mando. El formato básico del scp
comando es:
scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION
Por ejemplo, para copiar el archivo «backup.txz» de la máquina local a la carpeta «backups» en el directorio de inicio del usuario «maketecheasier» en el servidor remoto con la dirección IP 192.168.1.101, utilice:
scp backup.txz maketecheasier@192.168.122.201:~/backups/

Similar a cuando te conectas usando ssh
, se le pedirá la contraseña. No se le pedirá el nombre de usuario, como se especificó en el comando.
También puede utilizar comodines como los siguientes:
scp *.txz maketecheasier@192.168.122.201:~/backups/
Para copiar un archivo desde el servidor remoto a la máquina local, simplemente invierta los parámetros:
scp maketecheasier@192.168.122.201:~/backups/backup.txz .
Observe el punto al final del comando que significa «el directorio actual», como lo hace con el estándar cp
o mv
comandos. Podrías especificar fácilmente otro directorio si quisieras.
scp -r maketecheasier@192.168.122.201:~/backups/ backups-from-server/
Y lo mismo con los comodines:
scp maketecheasier@192.168.122.201:~/backups/*.txz .
Para copiar de forma recursiva un directorio a un servidor remoto, utilice el -r
opción:
scp -r backups/ maketecheasier@192.168.122.201:~/backups/
Y para copiar una copia recursiva de un directorio desde el servidor remoto a la máquina local, use:
scp -r scp -r maketecheasier@192.168.122.201:~/backups/ .
Otros comandos SCP para probar
Para progresar más, intente experimentar con el -C
opción, que habilita la compresión durante la copia o la -l
opción, que limita el ancho de banda durante la copia.
Para transferir un archivo sin tener que escribir una contraseña cada vez, también puede generar una clave SSH privada para conectarse a su servidor.