El comando scp en Linux: copiar archivos por SSH

Introducción

En el mundo de la administración de sistemas Linux, transferir archivos de forma segura entre máquinas es una tarea cotidiana. El protocolo SSH brinda un canal cifrado que protege la información frente a interceptions y manipulación. Dentro de este ecosistema, el comando scp (secure copy) se destaca por su simplicidad y su capacidad de copiar archivos y directorios mediante SSH.

¿Qué es scp?

scp es una utilidad de línea de comandos que permite copiar archivos entre un host local y uno remoto, o entre dos hosts remotos, utilizando el mismo mecanismo de autenticación y cifrado que SSH. A diferencia de herramientas como FTP, scp no requiere un daemon adicional; basta con tener acceso SSH al destino.

Sintaxis básica

La forma general del comando es:

scp [opciones] origen destino

Donde origen y destino pueden ser rutas locales o especificaciones del formato usuario@host:ruta. Si se omite el usuario, se asume el usuario actual del cliente.

Opciones más usadas

  • -r: activa el modo recursivo para copiar directorios completos.
  • -P puerto: indica el puerto SSH a utilizar (mayúscula P para evitar conflicto con la opción de scp de -p de preservación).
  • -C: habilita la compresión de datos durante la transferencia, útil en enlaces de ancho de banda limitado.
  • -i archivo_clave: especifica el archivo de clave privada para autenticación, cuando no se quiere usar la clave predeterminada.
  • -v: modo verboso que muestra información de depuración, ideal para solucionar problemas de conexión.

Ejemplos prácticos

  • Copiar un archivo local al servidor remoto:
    scp /home/local/document.pdf usuario@servidor.example.com:/tmp/
  • Copiar un archivo remoto al equipo local:
    scp usuario@servidor.example.com:/var/log/syslog ./
  • Copiar un directorio completo de forma recursiva:
    scp -r /home/local/proyecto usuario@servidor.example.com:/home/usuario/
  • Usar un puerto distinto al predeterminado 22:
    scp -P 2222 archivo.txt usuario@servidor.example.com:/home/usuario/
  • Transferir entre dos servidores remotos (el tráfico pasa por el cliente):
    scp usuario@origen.example.com:/datos/respaldo.tar.gz usuario@destino.example.com:/backup/

Consejos de seguridad

  • Siempre verifique la autenticidad del host la primera vez que se conecte; el cliente SSH almacena la huella del servidor en ~/.ssh/known_hosts.
  • Preferir el uso de claves públicas/privadas en lugar de contraseñas para evitar ataques de fuerza bruta.
  • Restringir el acceso mediante AllowUsers o AllowGroups en la configuración del servidor SSH.
  • Monitorear los registros de autenticación para detectar intentos sospechosos.

Conclusión

El comando scp es una herramienta esencial para cualquier administrador o usuario avanzado de Linux que necesite mover archivos de forma segura y rápida. Su integración con SSH garantiza confidencialidad e integridad, mientras que su sintaxis sencilla permite realizar desde copias simples hasta transferencias complejas entre múltiples sistemas. Practicar los ejemplos y opciones descritas le permitirá aprovechar al máximo esta utilidad y mantener su entorno bajo control.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol