8.3 Transferencia de Archivos en Linux: SFTP, SCP, Rsync y FTP¶
Introducción¶
La transferencia de archivos es una necesidad fundamental en cualquier entorno Linux: despliegues de aplicaciones, backups, sincronización entre servidores, distribución de datos, etc. Realizar estas operaciones de forma eficiente y segura es una responsabilidad clave de cualquier Sysadmin.
Existen múltiples herramientas y protocolos para la transferencia de datos en Linux. En entornos modernos, destacan SCP, SFTP y Rsync por su integración con SSH y su enfoque seguro, mientras que FTP queda relegado a entornos legacy o específicos.
Objetivos de aprendizaje¶
Al finalizar este capítulo serás capaz de:
- Comprender los principales protocolos de transferencia en Linux.
- Transferir archivos de forma segura con SCP y SFTP.
- Sincronizar datos eficientemente con Rsync.
- Configurar servicios de transferencia.
- Diagnosticar problemas de transferencias.
- Aplicar buenas prácticas de seguridad y automatización.
Conceptos Teóricos¶
1. Tipos de transferencia de archivos¶
FTP (File Transfer Protocol)¶
- Protocolo clásico.
- No cifrado → inseguro.
- Usa puerto 21.
SFTP (SSH File Transfer Protocol)¶
- Basado en SSH.
- Transferencia cifrada.
- Muy usado en producción.
SCP (Secure Copy)¶
- Transferencia directa sobre SSH.
- Simple y rápida.
Rsync¶
- Sincronización inteligente.
- Solo transfiere diferencias.
- Optimiza ancho de banda.
2. Comparativa rápida¶
| Herramienta | Seguridad | Eficiencia | Uso típico |
|---|---|---|---|
| FTP | ❌ | Media | Legacy |
| SFTP | ✅ | Media | Transferencia segura |
| SCP | ✅ | Media | Copias rápidas |
| Rsync | ✅ | ✅✅ | Sincronización |
3. Integración con SSH¶
SCP, SFTP y Rsync utilizan SSH, lo que implica:
- cifrado
- autenticación por claves
- control de acceso
Laboratorio Práctico¶
Escenario¶
Necesitas:
- transferir archivos a un servidor remoto
- sincronizar backups
- asegurar el canal de transferencia
Parte 1: Transferencia con SCP¶
Paso 1: Copiar archivo al servidor¶
Paso 2: Copiar desde servidor¶
Paso 3: Copiar directorio¶
Explicación¶
-r→ recursivo- sintaxis similar a
cp
Parte 2: Transferencia con SFTP¶
Paso 1: Conectar¶
Paso 2: Navegación¶
Paso 3: Subir archivo¶
Paso 4: Descargar archivo¶
Paso 5: Salir¶
Parte 3: Sincronización con Rsync¶
Paso 1: Copia básica¶
Paso 2: Sincronizar directorio¶
Paso 3: Eliminar archivos obsoletos¶
Explicación¶
-a→ modo archivo (preserva permisos, timestamps)-v→ verbose--delete→ elimina en destino lo que no existe en origen
Paso 4: Compresión¶
Paso 5: Uso con SSH específico¶
Parte 4: Configuración básica de FTP (vsftpd)¶
Instalación¶
Configuración¶
Opciones básicas:
Reiniciar¶
FTP inseguro
FTP transmite datos en claro. Solo usar en redes aisladas o migrar a SFTP.
Errores Comunes y Troubleshooting¶
1. Permission denied (SSH)¶
- clave incorrecta
- permisos mal configurados
2. Conexión rechazada¶
3. Rsync no sincroniza correctamente¶
Revisar:
- rutas origen/destino
- uso correcto de
/
4. Velocidad lenta¶
- sin compresión (
-z) - latencia alta
5. Firewall bloqueando¶
6. FTP no conecta¶
- puerto 21 cerrado
- modo pasivo no configurado
Buenas Prácticas (Nivel Senior)¶
1. Priorizar SSH siempre¶
Usar:
- SCP
- SFTP
- Rsync
Evitar FTP.
2. Automatización de backups¶
Ejemplo con cron:
3. Uso de claves SSH¶
Evitar contraseñas en scripts.
4. Limitación de acceso¶
- chroot en SFTP
- restringir usuarios
5. Logging¶
Monitorizar:
6. Ancho de banda limitado¶
7. Verificación previa¶
8. Integridad de datos¶
Usar checksums:
Resumen y Siguiente Paso¶
Has aprendido a transferir archivos en Linux utilizando herramientas modernas como SCP, SFTP y Rsync, entendiendo sus diferencias, ventajas y casos de uso. También conoces las limitaciones del FTP y cómo manejarlo en entornos legacy.
Este conocimiento es esencial para gestionar datos de forma eficiente y segura en cualquier infraestructura.
El siguiente paso es automatizar operaciones a gran escala:
➡️ 9.1 Bash Scripting Pro, donde aprenderás a crear scripts avanzados para automatizar completamente la administración de sistemas.