Transferir archivos con el comando SCP

En muchas ocasiones nos surge la necesidad de copiar archivos de nuestro equipo hacia un servidor remoto al cual estamos conectados mediante SSH. Y también en sentido contrario, es decir, descargarlos.

Esto podemos hacerlo de muchas maneras: mediante FTP, Samba, etc., pero en esta ocasión vamos a ver cómo hacerlo mediante SSH; más en concreto mediante SCP.

SCP es un comando que nos permitirá subir y descargar archivos de un servidor remoto estableciendo una conexión segura.

En linux las utilidades SSH y SCP ya suelen venir instaladas por defecto. Si no es tu caso vamos a ver rápidamente cómo intalarlas.

Instalación

Instalación en el PC cliente

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-client

Instalación en el servidor

sudo apt-get update
sudo apt-get upgrade
sudo apt install openssh-server

Habilitar el servicio

sudo systemctl enable ssh

SSH por defecto trabaja con el puerto 22. Si tienes el firewall activado y te está bloqueando la conexión, puedes abrir dicho puerto con el siguiente comando.

sudo ufw allow ssh

Descargar archivos del servidor

scp -r -P 5864 devseo@AAA.BBB.CCC.DDD:/home/devseo ./
  • -r: indica que copiaremos un directorio de forma recursiva. Es decir los archivos que contiene y todas sus carpetas. En el ejemplo anterior estamos copiando desde el servidor el directorio devseo.
  • -P: con este parámetro especificamos el puerto en el caso que estemos usando un puerto diferente al de por defecto.
  • devseo@AA.BBB.CCC.DDD: indicamos el usuario con el que nos conectamos (devseo) y la IP del servidor (AA.BBB.CCC.DDD).
  • ./: indica el directorio de nuestra máquina local donde se copiarán los archivos. En este caso hace referencia al directorio actual desde el cual estamos ejecutando el comando.
👉  Mejora la lectura limitando en ancho de los párrafos

Subir archivos al servidor

El comando para copiar archivos al servidor es el mismo que para descargar, pero cambiaremos el orden, indicando en primer lugar la carpeta de nuestro equipo local a copiar y a continuación el directorio de destino en el servidor.

scp -r ./ devseo@AAA.BBB.CCC.DDD:/home/devseo

Aquí un ejemplo de cómo copiar la clave pública desde un equipo cliente con Windows a un servidor Ubuntu. Podemos especificar el puerto con -P (por defecto es el 22).

scp -r -P 5759 c:/users/usuario/.ssh/id_rsa.pub root@192.0.2.123:~/.ssh/authorized_keys

👇Tu comentario