La transferencia de archivos con SCP es una de las formas más directas de mover archivos entre tu equipo y un servidor Linux o Unix desde la terminal. Si ya puedes conectarte por SSH, normalmente también puedes copiar archivos con el comando SCP sin instalar servicios adicionales ni abrir nuevos protocolos.
SCP resulta especialmente útil para tareas de administración diaria: subir un archivo de configuración, descargar un log, copiar una copia de seguridad, mover un script a un VPS o transferir una carpeta pequeña entre equipos. No es la herramienta más avanzada para todos los casos, pero sí una de las más simples de entender y recordar.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
👉 También te dejo por aquí una guía de comandos Linux por categorías
Qué es SCP y para qué sirve
SCP significa Secure Copy Protocol. En la práctica, cuando hablamos de SCP, nos referimos al comando que permite copiar archivos entre sistemas usando SSH como canal seguro.
La idea básica es sencilla:
- si puedes entrar a un servidor con SSH, es muy probable que puedas copiar archivos con SCP;
- los datos viajan cifrados por SSH;
- la autenticación puede hacerse con contraseña o con clave privada;
- puedes copiar de local a remoto, de remoto a local e incluso entre dos servidores remotos.
Un primer ejemplo mínimo sería:
scp archivo.txt usuario@servidor:/home/usuario/Ese comando copia archivo.txt desde tu equipo local al directorio /home/usuario/ del servidor remoto.
Cuándo conviene usar SCP
La transferencia de archivos con SCP encaja muy bien cuando necesitas una copia puntual, clara y rápida. Por ejemplo:
- subir un archivo de configuración a un servidor;
- descargar logs para analizarlos localmente;
- mover un script entre equipos;
- copiar certificados, claves públicas o archivos de despliegue;
- transferir una copia comprimida de una carpeta;
- trabajar en entornos donde ya tienes acceso SSH.
No siempre será la mejor opción. Si necesitas sincronizar directorios grandes, reanudar transferencias interrumpidas o copiar solo archivos modificados, normalmente rsync será más eficiente. Si prefieres navegar carpetas remotas de forma interactiva, sftp suele ser más cómodo.
La regla práctica es esta: usa SCP para copias simples; usa rsync para sincronización; usa sftp cuando quieras explorar el servidor como si estuvieras en una sesión de transferencia.
Requisitos antes de usar SCP
Antes de iniciar una transferencia de archivos con SCP, comprueba tres cosas.
Primero, que tienes el cliente SCP disponible. En la mayoría de distribuciones Linux viene incluido con OpenSSH:
scpSi el comando existe, verás un mensaje de uso. En algunos sistemas también puedes probar:
scp -VSegundo, que el acceso SSH funciona:
ssh usuario@servidorSi SSH no conecta, SCP tampoco podrá copiar.
Tercero, que tu usuario tiene permisos sobre las rutas implicadas. Necesitas permiso de lectura en el origen y permiso de escritura en el destino. Muchos errores de SCP no son problemas de red, sino permisos insuficientes.
Sintaxis básica del comando scp
La estructura general es:
scp [opciones] origen destinoEl origen y el destino pueden ser rutas locales o remotas. Una ruta local se escribe como cualquier ruta del sistema:
/home/kami/documentos/informe.pdfUna ruta remota usa este formato:
usuario@servidor:/ruta/remotaPor ejemplo:
scp informe.pdf [email protected]:/home/ana/documentos/En ese comando:
- informe.pdf es el archivo local;
- ana es el usuario remoto;
- 192.168.1.50 es el servidor;
- /home/ana/documentos/ es la carpeta de destino.
Si dejas la ruta remota vacía después de los dos puntos, SCP copia al directorio personal del usuario remoto:
scp informe.pdf [email protected]:Cómo subir un archivo a un servidor con SCP
Para subir un archivo local a un servidor remoto, coloca primero el archivo de origen y después el destino remoto:
scp archivo.txt usuario@servidor:/home/usuario/También puedes cambiar el nombre del archivo al copiarlo:
scp archivo.txt usuario@servidor:/home/usuario/archivo-final.txtSi estás situado en la misma carpeta donde se encuentra el archivo, puedes usar una ruta relativa:
scp backup.sql usuario@servidor:/var/backups/Un caso habitual es intentar copiar directamente a una ruta protegida, como /etc. SCP no puede usar sudo en el destino remoto de forma transparente. Lo recomendable es copiar primero a una ruta donde tu usuario pueda escribir y luego mover el archivo dentro del servidor:
scp nginx.conf usuario@servidor:/tmp/nginx.conf
ssh usuario@servidor
sudo mv /tmp/nginx.conf /etc/nginx/nginx.confAsí separas la transferencia del cambio administrativo y reduces errores.
Cómo descargar un archivo desde un servidor
Para descargar un archivo remoto a tu equipo local, invierte el orden: primero va la ruta remota y después el destino local.
scp usuario@servidor:/var/log/syslog .El punto final significa “la carpeta actual”. También puedes indicar una carpeta local concreta:
scp usuario@servidor:/var/log/syslog /home/kami/descargas/O descargar el archivo con otro nombre:
scp usuario@servidor:/var/log/syslog ./syslog-servidor.txtEste patrón es muy útil para revisar archivos de producción sin editarlos directamente en el servidor:
scp usuario@servidor:/var/log/nginx/error.log ./error-nginx.logCopiar carpetas completas con scp -r
Para copiar directorios completos necesitas la opción -r, de recursivo.
Subir una carpeta al servidor:
scp -r mi-proyecto usuario@servidor:/home/usuario/Descargar una carpeta desde el servidor:
scp -r usuario@servidor:/var/www/html ./html-backupTen presente que SCP copia el contenido, pero no sincroniza de forma inteligente. Si repites la copia, puede volver a transferir archivos que ya existían. Para proyectos grandes, copias frecuentes o despliegues repetidos, suele ser preferible rsync:
rsync -avz mi-proyecto/ usuario@servidor:/home/usuario/mi-proyecto/Usar SCP con un puerto SSH personalizado
Algunos servidores no escuchan SSH en el puerto 22. Si tu servidor usa otro puerto, en SCP se indica con -P en mayúscula:
scp -P 2222 archivo.txt usuario@servidor:/home/usuario/Es importante no confundirlo con SSH, donde el puerto se indica con -p en minúscula:
ssh -p 2222 usuario@servidor
#en SCP
scp -P 2222 usuario@servidor:/var/log/syslog .Usar SCP con una clave privada SSH
Si tu servidor usa autenticación por clave, puedes indicar la clave privada con -i:
scp -i ~/.ssh/id_ed25519 archivo.txt usuario@servidor:/home/usuario/También puedes combinar clave privada y puerto personalizado:
scp -i ~/.ssh/id_ed25519 -P 2222 archivo.txt usuario@servidor:/home/usuario/Preservar fechas y permisos con scp -p
La opción -p en minúscula conserva, cuando es posible, los tiempos de modificación, tiempos de acceso y modos del archivo:
scp -p archivo.txt usuario@servidor:/home/usuario/También puedes usarla con copias recursivas:
scp -rp carpeta usuario@servidor:/home/usuario/Esto es útil cuando la fecha original importa, por ejemplo en logs archivados, recursos estáticos, paquetes de despliegue o copias de trabajo.
Recuerda la diferencia:
- -p preserva atributos;
- -P indica el puerto SSH remoto.
Esa diferencia entre minúscula y mayúscula es una de las confusiones más comunes al empezar con SCP.
Ver progreso, depurar y comprimir transferencias
En muchas instalaciones, SCP muestra una línea de progreso durante la copia:
archivo.txt 100% 12MB 4.2MB/s 00:03Si necesitas diagnosticar qué está ocurriendo, usa modo verboso:
scp -v archivo.txt usuario@servidor:/home/usuario/Puedes aumentar el detalle con -vv o -vvv:
scp -vvv archivo.txt usuario@servidor:/home/usuario/El modo verboso ayuda cuando:
- no sabes qué clave SSH está usando el cliente;
- la autenticación falla;
- el servidor cierra la conexión;
- quieres comprobar qué reglas de configuración SSH se aplican.
Limitar el ancho de banda de SCP
Si no quieres saturar una conexión, usa -l para limitar el ancho de banda en Kbit/s:
scp -l 8000 archivo.iso usuario@servidor:/home/usuario/Ese ejemplo limita la transferencia a unos 8000 Kbit/s, aproximadamente 1 MB/s. Es útil en conexiones compartidas, servidores en producción o ventanas de mantenimiento donde no quieres consumir todo el ancho de banda disponible.
Copiar archivos entre dos servidores remotos
SCP también permite copiar desde un servidor remoto hacia otro:
scp usuario1@servidor1:/home/usuario1/archivo.txt usuario2@servidor2:/home/usuario2/Según la versión de OpenSSH y la configuración, la transferencia puede pasar por tu equipo local o realizarse directamente entre servidores. Si necesitas controlar bien este comportamiento, revisa las opciones disponibles en tu versión de SCP.
Para migraciones con muchos archivos, suele ser más claro entrar al servidor de origen y usar rsync hacia el destino:
rsync -avz --progress /ruta/origen/ usuario2@servidor2:/ruta/destino/SCP frente a rsync y SFTP
SCP, rsync y SFTP pueden mover archivos usando SSH, pero no resuelven exactamente el mismo problema.
SCP destaca por su sencillez:
scp archivo.txt usuario@servidor:/home/usuario/Es ideal para copiar uno o varios archivos de forma puntual.
Rsync destaca cuando hay sincronización, repetición o mucho volumen:
rsync -avz --progress carpeta/ usuario@servidor:/home/usuario/carpeta/Copia diferencias, conserva mejor estructuras grandes y puede reanudar transferencias.
SFTP funciona como una sesión interactiva de transferencia:
sftp usuario@servidorDesde ahí puedes listar directorios, entrar en carpetas, subir, bajar y borrar archivos.
Una regla sencilla:
- usa SCP para copias simples y puntuales;
- usa rsync para sincronizar o mover mucho contenido;
- usa sftp si quieres navegar y transferir de forma interactiva.
Buenas prácticas para una transferencia de archivos con SCP
Antes de copiar, prueba la conexión con SSH. Si SSH falla, la copia con SCP también fallará.
Usa rutas absolutas cuando trabajes con servidores. Evitan ambigüedades y hacen que los comandos sean más fáciles de revisar.
Para carpetas grandes, comprime antes o usa rsync. Un archivo comprimido puede ser más cómodo de mover que miles de archivos pequeños:
tar -czf proyecto.tar.gz proyecto/
scp proyecto.tar.gz usuario@servidor:/home/usuario/Documenta los comandos repetidos. Si siempre copias al mismo servidor, configura SSH para reducir errores con usuarios, puertos y claves.
Conclusión
La transferencia de archivos con SCP sigue siendo una habilidad muy práctica para administrar sistemas por SSH. Su ventaja principal es la simplicidad: indicas un origen, un destino y copias usando una conexión segura que probablemente ya tienes configurada.
Para operaciones simples, SCP es directo y suficiente. Para transferencias grandes, sincronización o conexiones inestables, conviene pasar a rsync. Para navegación interactiva, sftp resulta más cómodo. Saber cuándo usar cada herramienta te ayuda a trabajar con servidores reales de forma más segura, ordenada y eficiente.

