Linux / Comando scp: copiar archivos entre equipos mediante SSH
scp copia archivos entre sistemas locales y remotos usando SSH. Normalmente, la ubicación remota se indica en la forma usuario@host:ruta.
Desde OpenSSH 9.0, scp utiliza de forma predeterminada SFTP, el protocolo de transferencia de archivos sobre SSH. La opción -O selecciona el protocolo SCP heredado por compatibilidad. El orden de origen y destino determina la dirección de la copia; compruebe los dos puntos de la ruta remota y las comillas, especialmente si recurre al protocolo heredado.
Sintaxis básica
scp [opciones] origen destino
La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man scp en el sistema actual.
Ejemplos de uso
Copiar archivos locales al servidor
Necesita un archivo local report.txt, acceso SSH a la cuenta remota y permisos de escritura en el destino. Sustituya los nombres de usuario, servidor y rutas de los ejemplos por los reales. Las direcciones example.com y example.test son ilustrativas; no implican que exista allí un servidor SSH disponible. Compruebe antes si la copia reemplazará un archivo existente.
scp report.txt alice@server.example.com:/home/alice/
Copiar archivos del servidor a local
Trae archivos remotos al directorio actual.
scp alice@server.example.com:/home/alice/report.txt .
Copiar directorios
Use -r para incluir archivos secundarios. Verifique el tamaño esperado.
scp -r project/ alice@server.example.com:/home/alice/
Verificar la dirección de transferencia y el resultado
scp archivo_local usuario@host:ruta copia desde local a remoto. Los servidores y rutas indicados a continuación son solo para fines explicativos, así que verifique los permisos reales y el espacio de almacenamiento antes de cambiarlos.
scp report.txt user@server.example.test:/tmp/report.txt
En caso de éxito, se mostrará el progreso de la transferencia o, según la configuración de salida, puede finalizar sin ningún mensaje. Verifique el nombre y el tamaño del archivo en el servidor remoto con ssh user@server.example.test 'ls -lh /tmp/report.txt'.
La posición antes y después de los dos puntos determina la dirección de transferencia. Verifique nuevamente la ruta de destino, ya que puede sobrescribir archivos remotos existentes. rsync puede ser más adecuado si desea reanudar transferencias grandes interrumpidas o sincronizar varios archivos de manera repetida.
Opciones y formatos principales
| Opción o formato | Descripción |
|---|---|
-r |
Copia directorios de manera recursiva. |
-P puerto |
Especifica el puerto del servidor SSH. A diferencia de -p de ssh, es en mayúscula. |
-i archivo_de_clave |
Especifica la clave privada a utilizar para la autenticación. |
-p |
Conserva la hora de modificación y los permisos del archivo en la medida de lo posible. |
-O |
Selecciona el protocolo SCP heredado cuando sea imprescindible por compatibilidad. |
Precauciones al usar
Si el archivo de destino existe, se puede sobrescribir, así que verifique la ruta y la cuenta, y haga una copia de seguridad de los archivos importantes primero. El protocolo antiguo -O tiene riesgos de interpretación de shells remotas y de seguridad, por lo que generalmente no se usa. scp no es una herramienta para comparar solo archivos modificados o sincronizar el estado de eliminación. Para esas tareas, rsync puede ser adecuado.
Preguntas frecuentes
¿La opción de puerto en scp es -p?
No. El puerto del servidor es -P mayúscula. -p minúscula es la opción para preservar la hora y los permisos de los archivos.
Documentación oficial
Se puede verificar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de scp.




