Guias

Comando SCP en Linux: guía avanzada con ejemplos

Introducción

TL;DR — Lo que vas a tener al final

  • Tiempo de setup: 30 minutos a 2 horas dependiendo de la complejidad del entorno.
  • Requisitos: Acceso root, Linux moderno, conexión a internet para descargar dependencias.
  • Resultado: Servicio funcional y estable, documentado paso a paso.
  • Troubleshooting: Logs estándar en /var/log/, comandos de verificación al final de cada sección.

Resumen rápido

Introducción En el mundo de la administración de sistemas y la transferencia de archivos, el comando SCP (Secure Copy Protocol) brilla como una herramienta esencial en sistemas Linux. SCP no solo permite la transferencia de archivos de manera segura, sino que también ofrece una serie de características poderosas. En este…


En el mundo de la administración de sistemas y la transferencia de archivos, el comando SCP (Secure Copy Protocol) brilla como una herramienta esencial en sistemas Linux. SCP no solo permite la transferencia de archivos de manera segura, sino que también ofrece una serie de características poderosas. En este artículo, exploraremos a fondo el comando SCP y proporcionaremos ejemplos de código para aprovechar al máximo esta herramienta.

El Comando SCP en Resumen

SCP es una utilidad de línea de comandos que se utiliza para copiar archivos y directorios de forma segura entre sistemas locales y remotos. La sintaxis básica es la siguiente:

bashCopy code

scp [opciones] origen destino

Donde:

  • opciones son modificadores para el comportamiento de SCP.
  • origen es el archivo o directorio que deseas copiar.
  • destino es la ubicación a la que deseas copiar el archivo o directorio.

Ejemplos de Uso Avanzado de SCP

1. Copiar archivos de un sistema remoto a local:

scp usuario@host_remoto:/ruta/al/archivo_local /ruta/local

2. Copiar archivos locales a un sistema remoto:

scp /ruta/local/archivo usuario@host_remoto:/ruta/remota

3. Copiar directorios de un sistema remoto a local:

scp -r usuario@host_remoto:/ruta/al/directorio_local /ruta/local

4. Copiar con un puerto no estándar:

scp -P puerto usuario@host_remoto:/ruta/al/archivo_local /ruta/local

5. Copiar usando clave SSH en lugar de contraseña:

Nota: primero necesitas generar y publicar tu clave SSH. Si no tienes una, este paso fallará.

ssh-keygen -t ed25519 -a 100 # genera par ed25519 (100 rounds de KDF, recomendado)

ssh-copy-id usuario@host_remoto # publica la clave pública en ~/.ssh/authorized_keys

ssh -o PasswordAuthentication=no usuario@host_remoto echo OK # verifica que ya no pide password

Después de esto, ya puedes usar scp sin contraseña:

scp -i ruta/a/clave/ssh usuario@host_remoto:/ruta/al/archivo_local /ruta/local

6. Excluir archivos/directorios al copiar (usar rsync, NO scp):

rsync -av --exclude="archivo.txt" usuario@host_remoto:/ruta/al/directorio /ruta/local/ # scp NO tiene --exclude (es de rsync); rsync está en casi todas las distros

7. Visualizar el progreso de la transferencia:

scp -r -v usuario@host_remoto:/ruta/al/directorio_local /ruta/local

Ejemplos de Código

1. Automatizar la transferencia con un script Bash:

bashCopy code

#!/bin/bash 

origen="/ruta/local/archivo" 

destino="usuario@host_remoto:/ruta/remota" 

scp $origen $destino

2. Copiar archivos desde múltiples servidores remotos:

#!/bin/bash archivos=("archivo1.txt" "archivo2.txt")

destino="usuario@host_remoto:/ruta/remota" 

for archivo in "${archivos[@]}"; do 

scp $archivo $destino 

done

3. Crear una función de Bash para simplificar la copia:

#!/bin/bash 

function copiar_a_remoto() {

origen="$1"

destino="usuario@host_remoto:/ruta/remota" 

scp $origen $destino 

}

copiar_a_remoto "/ruta/local/archivo2.txt"

copiar_a_remoto "/ruta/local/archivo1.txt" 

Conclusión

El comando SCP es una herramienta poderosa y versátil para la transferencia segura de archivos en entornos Linux. Con una variedad de opciones y usos avanzados, puede facilitar la administración de archivos en sistemas locales y remotos. Al comprender y aprovechar al máximo las capacidades de SCP, los administradores de sistemas pueden agilizar las tareas de transferencia de archivos de manera segura y eficiente.




Preguntas frecuentes

¿Por qué Comando SCP en Linux: guía avanzada con ejemplos es relevante para sysadmins Linux?

Forma parte del flujo diario de administración. Los conceptos explicados se aplican directamente a servidores en producción y resuelven problemas reales que enfrentan sysadmins hispanohablantes.

¿Qué necesito para empezar con Comando SCP en Linux: guía?

Distribución Linux actualizada (Debian, Ubuntu, RHEL, Fedora o Arch), acceso root, y conexión a internet. Para producción: entorno de staging separado antes de aplicar cambios.

¿Cuáles son los errores más comunes con Comando SCP en Linux: guía?

Los tres más frecuentes: (1) saltar la lectura de logs, (2) aplicar cambios directos en producción sin probar, (3) olvidar permisos y ownership. La documentación y un plan de rollback siempre.

¿Cuándo usar Comando SCP en Linux: guía y cuándo una alternativa?

Esta solución es ideal para el caso descrito. Alternativas como Docker, Ansible o configuración manual pueden ser mejores según contexto: portabilidad, escala y reproducibilidad son los factores clave.

¿Cómo migro desde una configuración previa a Comando SCP en Linux: guía?

Documentar el estado actual, probar la nueva configuración en staging, validar funcionalmente, y aplicar en producción con rollback plan listo. Los posts de SoyLinux incluyen troubleshooting para los problemas más comunes.

Lee también

Alfonso Moreno | Sysadmin Senior

Soy Alfonso, sysadmin senior con RHCE y más de 10 años administrando sistemas Linux para empresas y proyectos personales. Me especializo en infraestructura, redes, virtualización, monitoring, automation y self-hosting. Sobre SoyLinux.com SoyLinux.com es un blog técnico en español sobre Linux, software libre y self-hosting. Lo mantengo en mi tiempo libre. Áreas de expertise - Linux server administration: RHEL, CentOS, Rocky, Alma, Fedora, Debian, Ubuntu - Network services: Postfix, BIND, Samba, NFS, Squid - Virtualización y containers: KVM, Proxmox, Docker, Podman - Monitoring: Prometheus, Grafana, Zabbix - Automation: Ansible, Bash scripting - Self-hosting: Vaultwarden, Nextcloud, Jellyfin, Immich, Homelab Contacto - Email: [email protected]

One thought on “Comando SCP en Linux: guía avanzada con ejemplos”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *