Transferencia
This content is not available in your language yet.
8.3 Transferencia de Archivos en Linux: SFTP, SCP, Rsync y FTP
Sección titulada «8.3 Transferencia de Archivos en Linux: SFTP, SCP, Rsync y FTP»Introducción
Sección titulada «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
Sección titulada «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
Sección titulada «Conceptos Teóricos»1. Tipos de transferencia de archivos
Sección titulada «1. Tipos de transferencia de archivos»FTP (File Transfer Protocol)
Sección titulada «FTP (File Transfer Protocol)»- Protocolo clásico.
- No cifrado → inseguro.
- Usa puerto 21.
SFTP (SSH File Transfer Protocol)
Sección titulada «SFTP (SSH File Transfer Protocol)»- Basado en SSH.
- Transferencia cifrada.
- Muy usado en producción.
SCP (Secure Copy)
Sección titulada «SCP (Secure Copy)»- Transferencia directa sobre SSH.
- Simple y rápida.
- Sincronización inteligente.
- Solo transfiere diferencias.
- Optimiza ancho de banda.
2. Comparativa rápida
Sección titulada «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
Sección titulada «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
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Necesitas:
- transferir archivos a un servidor remoto
- sincronizar backups
- asegurar el canal de transferencia
Parte 1: Transferencia con SCP
Sección titulada «Parte 1: Transferencia con SCP»Paso 1: Copiar archivo al servidor
Sección titulada «Paso 1: Copiar archivo al servidor»scp archivo.txt usuario@servidor:/tmp/Paso 2: Copiar desde servidor
Sección titulada «Paso 2: Copiar desde servidor»scp usuario@servidor:/tmp/archivo.txt .Paso 3: Copiar directorio
Sección titulada «Paso 3: Copiar directorio»scp -r carpeta/ usuario@servidor:/tmp/Explicación
Sección titulada «Explicación»-r→ recursivo- sintaxis similar a
cp
Parte 2: Transferencia con SFTP
Sección titulada «Parte 2: Transferencia con SFTP»Paso 1: Conectar
Sección titulada «Paso 1: Conectar»sftp usuario@servidorPaso 2: Navegación
Sección titulada «Paso 2: Navegación»lscd /tmpPaso 3: Subir archivo
Sección titulada «Paso 3: Subir archivo»put archivo.txtPaso 4: Descargar archivo
Sección titulada «Paso 4: Descargar archivo»get archivo.txtPaso 5: Salir
Sección titulada «Paso 5: Salir»exitParte 3: Sincronización con Rsync
Sección titulada «Parte 3: Sincronización con Rsync»Paso 1: Copia básica
Sección titulada «Paso 1: Copia básica»rsync -av archivo.txt usuario@servidor:/tmp/Paso 2: Sincronizar directorio
Sección titulada «Paso 2: Sincronizar directorio»rsync -av /local/ usuario@servidor:/remoto/Paso 3: Eliminar archivos obsoletos
Sección titulada «Paso 3: Eliminar archivos obsoletos»rsync -av --delete /local/ usuario@servidor:/remoto/Explicación
Sección titulada «Explicación»-a→ modo archivo (preserva permisos, timestamps)-v→ verbose--delete→ elimina en destino lo que no existe en origen
Paso 4: Compresión
Sección titulada «Paso 4: Compresión»rsync -avz /local/ usuario@servidor:/remoto/Paso 5: Uso con SSH específico
Sección titulada «Paso 5: Uso con SSH específico»rsync -av -e ssh carpeta/ usuario@servidor:/destino/Parte 4: Configuración básica de FTP (vsftpd)
Sección titulada «Parte 4: Configuración básica de FTP (vsftpd)»Instalación
Sección titulada «Instalación»sudo apt install vsftpdConfiguración
Sección titulada «Configuración»sudo nano /etc/vsftpd.confOpciones básicas:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESReiniciar
Sección titulada «Reiniciar»sudo systemctl restart vsftpdFTP transmite datos en claro. Solo usar en redes aisladas o migrar a SFTP.
Errores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. Permission denied (SSH)
Sección titulada «1. Permission denied (SSH)»- clave incorrecta
- permisos mal configurados
chmod 600 ~/.ssh/id_ed255192. Conexión rechazada
Sección titulada «2. Conexión rechazada»systemctl status ssh3. Rsync no sincroniza correctamente
Sección titulada «3. Rsync no sincroniza correctamente»Revisar:
- rutas origen/destino
- uso correcto de
/
4. Velocidad lenta
Sección titulada «4. Velocidad lenta»- sin compresión (
-z) - latencia alta
5. Firewall bloqueando
Sección titulada «5. Firewall bloqueando»ufw allow 22/tcp6. FTP no conecta
Sección titulada «6. FTP no conecta»- puerto 21 cerrado
- modo pasivo no configurado
Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Priorizar SSH siempre
Sección titulada «1. Priorizar SSH siempre»Usar:
- SCP
- SFTP
- Rsync
Evitar FTP.
2. Automatización de backups
Sección titulada «2. Automatización de backups»Ejemplo con cron:
rsync -av --delete /data/ backup@server:/backup/3. Uso de claves SSH
Sección titulada «3. Uso de claves SSH»Evitar contraseñas en scripts.
4. Limitación de acceso
Sección titulada «4. Limitación de acceso»- chroot en SFTP
- restringir usuarios
5. Logging
Sección titulada «5. Logging»Monitorizar:
journalctl -u ssh6. Ancho de banda limitado
Sección titulada «6. Ancho de banda limitado»rsync --bwlimit=10007. Verificación previa
Sección titulada «7. Verificación previa»rsync -av --dry-run /src/ /dst/8. Integridad de datos
Sección titulada «8. Integridad de datos»Usar checksums:
rsync -avcResumen y Siguiente Paso
Sección titulada «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.
