Cómo copiar archivos a través de SSH
El protocolo SSH (Secure Shell) es un protocolo de red para la gestión remota de sistemas operativos mediante línea de comandos. Es ampliamente considerado el estándar para el acceso remoto a máquinas *nix. Permite iniciar sesión de forma segura en un servidor, ejecutar comandos de forma remota, gestionar archivos (crear, eliminar, copiar, etc.) y mucho más. La mayoría de los proveedores de nube y alojamiento requieren SSH para acceder a sus servicios. En este artículo veremos cómo copiar archivos a través de SSH en sistemas Windows y Linux.
Cómo funciona SSH Copiar enlace
SSH puede transmitir de forma segura cualquier tipo de datos (audio, vídeo, datos de protocolos de aplicación) a través de un canal de comunicación cifrado. A diferencia de protocolos obsoletos e inseguros como Telnet y rlogin, SSH garantiza la confidencialidad y la autenticidad de los datos — fundamentales para la comunicación en Internet.
Así es como se establece una conexión segura entre cliente y servidor:
-
-
Establecimiento de conexión TCP: Por defecto, el servidor escucha en el puerto 22. Ambas partes comparten una lista de algoritmos compatibles (compresión, cifrado, intercambio de claves) y acuerdan cuáles utilizar.
-
Autenticación: Para evitar la suplantación de identidad, ambas partes verifican sus identidades utilizando cifrado asimétrico (pares de claves pública/privada). Primero se autentica el servidor. En la primera conexión, el cliente muestra una advertencia con los detalles del servidor. Las claves de servidores de confianza se almacenan en /home/<username>/.ssh/known_hosts.
-
Generación de clave: Una vez verificado el servidor, ambas partes generan una clave simétrica para cifrar todos los datos intercambiados.
-
Autenticación del usuario: Se realiza mediante contraseña o una clave pública enviada por el cliente, almacenada en el servidor en /home/<username>/.ssh/authorized_keys.
-
La implementación más popular en Linux es OpenSSH, que viene preinstalada en la mayoría de las distribuciones (Ubuntu, Debian, RHEL, etc.). En Windows se utilizan clientes como PuTTY o MobaXterm. Desde Windows 10 y Server 2019, las herramientas OpenSSH también están disponibles de forma nativa.
Copiar archivos a través de SSH Copiar enlace
Dos utilidades principales para copiar archivos en Linux son scp y sftp. Ambas vienen con OpenSSH.
SSH admite dos versiones de protocolo: 1 y 2. OpenSSH admite ambas, aunque la versión 1 se utiliza rara vez.
Configurar autocompletado Copiar enlace
Para activar el autocompletado con la tecla Tab al usar scp, configura la autenticación por clave pública:
Generar un par de claves:
ssh-keygenSalida esperada:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Por defecto, las claves (id_rsa para privada y id_rsa.pub para pública) se guardan en ~/.ssh/.
Copiar la clave pública al servidor remoto:
ssh-copy-id [username]@[ip-address]Copiar la clave pública al servidor remoto:
Secure Copy (SCP) Copiar enlace
Para transferencias pequeñas (por ejemplo, configuraciones de servicios), scp es ideal.
Copiar de local a remoto:
scp test.txt user@192.168.1.29:/home/user/Copiar múltiples archivos:
scp test1.txt test2.txt user@192.168.1.29:/home/user/Copiar múltiples archivos:
scp user@192.168.1.29:/home/user/test.txt ~/Copiar directorios:
scp -r testdir user@192.168.1.29:/home/user/Copiar de remoto a remoto:
scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/Secure FTP (SFTP) Copiar enlace
SFTP es otra utilidad incluida en OpenSSH. Desde OpenSSH 9.0, scp utiliza SFTP por defecto en lugar del antiguo protocolo SCP/RCP.
A diferencia de FTP clásico, sftp transmite datos cifrados a través de un túnel seguro. No requiere un servidor FTP separado.
Ejemplo de uso:
sftp misato@192.168.1.29
sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye
Gestores de archivos gráficos como Midnight Commander y Nautilus también usan sftp. En Nautilus, el servidor remoto aparece como una carpeta local, por ejemplo user@ip.

Copiar archivos a través de SSH en Windows Copiar enlace
En Windows, se utiliza la herramienta de línea de comandos pscp de PuTTY para copiar archivos.
Copiar al servidor:
pscp C:\server\test.txt misato@192.168.1.29:/home/misato/Copiar desde el servidor:
pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txtListar archivos en el servidor remoto:
pscp -ls user@192.168.1.29:/home/misatoUsar comillas para rutas con espacios:
pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/Ver ayuda:
pscpConclusión Copiar enlace
Hemos visto cómo copiar archivos desde y hacia un servidor usando el protocolo seguro SSH. Si trabajas con servidores en la nube, entender SSH es esencial: es el método estándar para el acceso remoto a máquinas *nix y una parte fundamental del trabajo diario en DevOps y administración de sistemas.