UA-51298262-10 Skip to main content
Seguridad

SCP y SFTP: transferencia segura de archivos a tu servidor

By octubre 27, 2026No Comments
SCP y SFTP: transferencia segura de archivos a tu servidor

Mover archivos entre tu equipo y el servidor es una de esas tareas que un webmaster hace todos los días, casi sin pensar. Yo llevo años usándolas y, de todas las herramientas disponibles, dos siguen siendo las más fiables: SCP y SFTP. Las dos trabajan sobre SSH, así que todo lo que viaja por la red va cifrado. El FTP de toda la vida, en cambio, envía credenciales y contenido en texto plano (sí, en texto plano), con todo lo que eso implica si alguien anda escuchando. Aquí va una guía de qué son, en qué se diferencian y qué comandos escribir desde el primer minuto.

¿Qué son SCP y SFTP y en qué se diferencian?

SCP (Secure Copy Protocol) es una utilidad de línea de comandos que copia archivos entre hosts usando SSH como transporte. Su gran ventaja es lo simple que es: un solo comando y la transferencia completa hecha. Para scripts, automatizaciones o una copia rápida suelta, poco más puedes pedir.

SFTP (SSH File Transfer Protocol) es otra cosa. Es un protocolo completo de gestión de archivos que corre sobre una conexión SSH, y no se queda en copiar. Puedes listar directorios, renombrar, borrar, cambiar permisos, reanudar transferencias que se cortaron a mitad… Se usa de forma interactiva (con el comando sftp en terminal) o mediante clientes gráficos como FileZilla o WinSCP.

Las diferencias que de verdad importan:

  • Velocidad: SCP suele ir más rápido en transferencias simples, porque arrastra menos sobrecarga de protocolo.
  • Funcionalidad: SFTP maneja el sistema de archivos completo; SCP solo copia.
  • Reanudación: si una transferencia falla, SFTP puede retomarla. SCP te obliga a empezar de cero.
  • Compatibilidad: las versiones recientes de OpenSSH están dejando obsoleto el antiguo protocolo SCP. SFTP es, visto el panorama, la apuesta de futuro.

En la práctica: SCP para copias puntuales y rápidas, SFTP cuando necesites explorar, editar o gestionar archivos en el servidor.

Requisitos previos antes de transferir archivos de forma segura

Antes de lanzarte, comprueba que cumples esto:

  1. Acceso SSH activo: el servidor debe tener el demonio SSH escuchando (por defecto en el puerto 22). Lo verificas con sudo systemctl status sshd.
  2. Credenciales válidas: un usuario del servidor con contraseña o, mejor todavía, con clave SSH configurada.
  3. Cliente instalado: en Linux y macOS, SCP y SFTP vienen de serie. En Windows tienes OpenSSH en PowerShell, o clientes gráficos como WinSCP si prefieres algo visual.
  4. Permisos de escritura: el usuario remoto necesita permisos sobre el directorio de destino, normalmente /var/www/html en servidores web.

Un consejo de seguridad que no es opcional: autentícate con claves SSH, no con contraseñas. Genera tu par de claves con ssh-keygen -t ed25519 y cópiala al servidor con ssh-copy-id usuario@servidor. Después, deshabilita la autenticación por contraseña en /etc/ssh/sshd_config con PasswordAuthentication no.

Comandos SCP esenciales con ejemplos prácticos

La sintaxis de SCP sigue el patrón origen destino, y los dos puntos marcan las rutas remotas. Estos son los casos que verás una y otra vez:

Copiar un archivo local al servidor

scp informe.pdf usuario@192.168.1.10:/home/usuario/

Copiar un archivo del servidor a tu equipo

scp usuario@192.168.1.10:/var/log/nginx/error.log ./

Copiar un directorio completo de forma recursiva

scp -r ./sitio-web usuario@192.168.1.10:/var/www/html/

Usar un puerto SSH personalizado

Si tu servidor escucha en el 2222 en vez del 22, añade la opción -P (en mayúscula, ojo):

scp -P 2222 backup.tar.gz usuario@192.168.1.10:/backups/

Transferir entre dos servidores remotos

scp usuario1@servidor1:/ruta/archivo.zip usuario2@servidor2:/destino/

Comprimir durante la transferencia

Con la opción -C activas compresión. En conexiones lentas se nota, y bastante:

scp -C -r ./uploads usuario@192.168.1.10:/var/www/html/

Con estos comandos en la mano puedes mover archivos entre máquinas con seguridad total y sin depender de interfaces gráficas. No parece gran cosa hasta que administras un servidor remoto sin entorno de escritorio. Entonces lo agradeces.

Cómo usar SFTP desde la terminal y con clientes gráficos

SFTP (SSH File Transfer Protocol) viaja sobre la misma conexión cifrada que SSH, y por eso es la opción que recomiendo cuando necesitas transferir archivos de forma segura de manera interactiva. Para abrir una sesión desde la terminal, ejecuta:

sftp usuario@192.168.1.10

Ya dentro, te encuentras con comandos muy parecidos a los del FTP clásico: ls y cd para moverte por el servidor remoto, lls y lcd para el sistema local, get archivo.zip para descargar, put backup.sql para subir y bye para cerrar. ¿Directorios completos? Añade el modificador recursivo: get -r carpeta_remota. Y hay un truco que me ha salvado más de una vez: put -a, que reanuda transferencias interrumpidas. Con archivos de varios gigas, no tiene precio.

Si lo tuyo es la interfaz gráfica, tienes varias alternativas consolidadas:

  • FileZilla: la más popular. En el gestor de sitios, selecciona el protocolo SFTP, puerto 22, e introduce tus credenciales o tu clave privada.
  • WinSCP: exclusiva de Windows, permite sincronizar carpetas y mantener scripts de automatización.
  • Cyberduck: ligera, disponible para Windows y macOS, con integración con editores externos.
  • Nautilus o Dolphin: los exploradores de archivos de Linux permiten montar el servidor directamente con la URL sftp://usuario@192.168.1.10.

¿Por qué elegir SFTP antes que SCP? Básicamente porque mantienes la sesión abierta. Puedes inspeccionar el sistema remoto antes de transferir, recuperarte de un error sin repetir todo el proceso… algo fundamental cuando gestionas backups de WordPress de varios gigabytes.

Buenas prácticas de seguridad: claves SSH, permisos y automatización

El primer paso para blindar tus transferencias es abandonar la autenticación por contraseña. Sin duda. Genera un par de claves Ed25519 con:

ssh-keygen -t ed25519 -C «admin@redservicio»

y copia la clave pública al servidor con ssh-copy-id usuario@192.168.1.10. Después, desactiva la autenticación por contraseña editando /etc/ssh/sshd_config con PasswordAuthentication no y reinicia el servicio SSH.

Con los permisos, aplica el principio de mínimo privilegio: la clave privada con permisos 600, el directorio .ssh del servidor 700 y la clave pública 644. Ojo aquí, porque si SSH detecta permisos demasiado abiertos, rechaza la conexión directamente. Y no es un capricho. Crea usuarios dedicados para transferencias, con acceso restringido mediante chroot si solo necesitan operar sobre una carpeta concreta.

Para automatizar backups nocturnos, combina SFTP en modo batch o rsync sobre SSH junto a cron:

0 3 * * * rsync -az -e «ssh -i /home/backup/.ssh/id_ed25519» /var/backups/ usuario@servidor:/backups/

Añade también fail2ban para bloquear intentos de intrusión, y cambia el puerto estándar 22 por uno no convencional. Sí, es seguridad por oscuridad y hay quien discrepa, pero como capa extra de disuasión no está de más. Con estas medidas, tus transferencias quedan protegidas tanto en tránsito como en el propio servidor.

Conclusión: SCP o SFTP, ¿cuál elegir para tu flujo de trabajo?

No hay un ganador absoluto, y desconfía de quien te diga lo contrario. SCP destaca por su velocidad y simplicidad en copias rápidas y puntuales desde la línea de comandos; SFTP es superior cuando necesitas sesiones interactivas, reanudar transferencias o usar clientes gráficos. En la práctica, la combinación que funciona para la mayoría de administradores es usar SFTP en el día a día y SCP o rsync para automatizaciones y scripts. Lo realmente importante es otra cosa: que cualquier transferencia pase siempre por un canal cifrado, con claves SSH bien gestionadas y permisos ajustados. Si necesitas ayuda para configurar accesos seguros, automatizar backups o resolver incidencias de conexión en tu servidor, en RedServicio (redservicio.net) encontrarás soporte profesional especializado en administración de servidores y WordPress.