¿Te has encontrado alguna vez con que necesitas mover un archivo de un usuario a otro en un servidor remoto y no sabes cómo hacerlo sin perder tiempo con el gestor de archivos? SCP (Secure Copy Protocol) es la herramienta que te permite copiar archivos entre máquinas de forma segura a través de SSH. En esta guía vemos cómo usarlo con ejemplos reales, incluyendo cómo copiar entre diferentes usuarios y cambiar el nombre del archivo en destino.
🤔 ¿Qué vamos a conseguir?
- Copiar un archivo local a un servidor remoto con
scp. - Copiar entre diferentes usuarios en la misma máquina o en máquinas distintas.
- Renombrar el archivo en destino durante la copia.
- Comprobar que la copia se ha realizado correctamente.
- Resolver los errores típicos de permisos y conectividad.
🧰 Prerrequisitos
- SSH instalado y funcionando en el servidor (si no lo tienes, consulta Formas de conectarse por SSH).
- La dirección IP del servidor y un usuario con acceso SSH.
- Conocimientos básicos de terminal.
- El cliente SSH (
sshyscpvienen instalados por defecto en Linux y macOS; en Windows con WSL también).
🛠️ El comando SCP: sintaxis básica
SCP funciona sobre SSH, así que necesitas las mismas credenciales (usuario, IP o hostname y contraseña). La sintaxis es:
scp [opciones] origen usuario@servidor:destino
Veamos los escenarios más comunes:
Copiar un archivo local al servidor remoto
scp archivo.txt jorge@192.168.101.1:/home/jorge/
Esto copia archivo.txt del equipo local a la carpeta /home/jorge/ del servidor 192.168.101.1 con el usuario jorge.
Copiar un archivo entre dos usuarios en el servidor
Imagina que estás en el usuario usu1 y necesitas copiar un archivo que está en la carpeta de usu2 a una carpeta del servidor. La clave es indicar el usuario correcto en cada lado:
scp /home/usu1/hola.txt jorge@192.168.101.1:/home/jorge/Música/canço.txt
En este ejemplo:
/home/usu1/hola.txtes el archivo de origen (en el equipo local, bajo el usuariousu1).jorge@192.168.101.1es el usuario y servidor de destino./home/jorge/Música/canço.txtes la ruta completa de destino con el nombre renombrado acanço.txt.

🚀 Opciones avanzadas de SCP
Copiar una carpeta completa (recursivo)
Para copiar una carpeta entera con todo su contenido, usa -r:
scp -r /home/usu1/documentos jorge@192.168.101.1:/home/jorge/Documentos/
Especificar un puerto SSH distinto
Si el servidor SSH no escucha en el puerto 22 (típico en producción), usa -P (mayúscula):
scp -P 2222 archivo.txt jorge@192.168.101.1:/home/jorge/
Preservar permisos y fechas
El flag -p conserva los permisos, fechas de modificación y tamaño del archivo original:
scp -p archivo.txt jorge@192.168.101.1:/home/jorge/
Usar una clave SSH en lugar de contraseña
Si ya tienes una clave SSH configurada, SCP la usa automáticamente sin pedir contraseña:
scp -i ~/.ssh/mi_clave_privada archivo.txt jorge@192.168.101.1:/home/jorge/
🧪 Comprobar que funciona
Una vez ejecutado el comando SCP, verifica que el archivo llegó correctamente:
# En el servidor (por SSH)
ssh jorge@192.168.101.1 'ls -la /home/jorge/Música/canço.txt'
# Verificar el contenido
ssh jorge@192.168.101.1 'cat /home/jorge/Música/canço.txt'
# Verificar el código de salida del comando scp
echo $?
Si el comando anterior devolvió un mensaje de error, revisa la tabla de errores comunes más abajo.
⚠️ Errores comunes
| Error | Causa | Solución |
|---|---|---|
Permission denied (publickey,password) | Contraseña incorrecta o usuario no válido | Revisa el usuario con whoami en el servidor y verifica la contraseña |
No such file or directory | La ruta de destino no existe en el servidor | Crea la carpeta primero: ssh jorge@192.168.101.1 'mkdir -p /home/jorge/Música' |
Connection refused | El servicio SSH no está corriendo en el servidor | En el servidor: sudo systemctl restart ssh y comprueba ss -tlnp | grep :22 |
Permission denied al escribir en destino | El usuario no tiene permiso de escritura en la carpeta destino | Cambia permisos: chmod 755 /home/jorge/Música o usa una ruta donde tengas escritura |
ssh: Could not resolve hostname | IP o hostname mal escrito, o el servidor está apagado | Verifica la IP con ping 192.168.101.1 y que el servidor esté encendido |
Connection timed out | Firewall bloqueando el puerto SSH | Abre el puerto: sudo ufw allow 22/tcp en el servidor |
🪜 Siguiente nivel
Una vez domines SCP para copias puntuales, la escalera natural es:
- Clave pública/privada — olvídate de las contraseñas y automatiza las copias: Conexión mediante clave pública privada.
- rsync — sincroniza carpetas completas de forma eficiente, transfiriendo solo los cambios: una alternativa más potente a SCP para copias repetidas.
- Montar un sistema de archivos remoto con
sshfspara trabajar con archivos remotos como si fueran locales. - Automatizar respaldos con
scporsyncen un cron job o script programado.
