Skip to content

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»

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.


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.

  • Protocolo clásico.
  • No cifrado → inseguro.
  • Usa puerto 21.
  • Basado en SSH.
  • Transferencia cifrada.
  • Muy usado en producción.
  • Transferencia directa sobre SSH.
  • Simple y rápida.
  • Sincronización inteligente.
  • Solo transfiere diferencias.
  • Optimiza ancho de banda.

Herramienta Seguridad Eficiencia Uso típico
FTP ❌ Media Legacy
SFTP ✅ Media Transferencia segura
SCP ✅ Media Copias rápidas
Rsync ✅ ✅✅ Sincronización

SCP, SFTP y Rsync utilizan SSH, lo que implica:

  • cifrado
  • autenticación por claves
  • control de acceso

Necesitas:

  • transferir archivos a un servidor remoto
  • sincronizar backups
  • asegurar el canal de transferencia


Ventana de terminal
scp archivo.txt usuario@servidor:/tmp/

Ventana de terminal
scp usuario@servidor:/tmp/archivo.txt .

Ventana de terminal
scp -r carpeta/ usuario@servidor:/tmp/

  • -r → recursivo
  • sintaxis similar a cp


Ventana de terminal
sftp usuario@servidor

Ventana de terminal
ls
cd /tmp

Ventana de terminal
put archivo.txt

Ventana de terminal
get archivo.txt

Ventana de terminal
exit


Ventana de terminal
rsync -av archivo.txt usuario@servidor:/tmp/

Ventana de terminal
rsync -av /local/ usuario@servidor:/remoto/

Ventana de terminal
rsync -av --delete /local/ usuario@servidor:/remoto/

  • -a → modo archivo (preserva permisos, timestamps)
  • -v → verbose
  • --delete → elimina en destino lo que no existe en origen

Ventana de terminal
rsync -avz /local/ usuario@servidor:/remoto/

Ventana de terminal
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)»

Ventana de terminal
sudo apt install vsftpd

Ventana de terminal
sudo nano /etc/vsftpd.conf

Opciones básicas:

anonymous_enable=NO
local_enable=YES
write_enable=YES

Ventana de terminal
sudo systemctl restart vsftpd

FTP transmite datos en claro. Solo usar en redes aisladas o migrar a SFTP.


  • clave incorrecta
  • permisos mal configurados
Ventana de terminal
chmod 600 ~/.ssh/id_ed25519

Ventana de terminal
systemctl status ssh

Revisar:

  • rutas origen/destino
  • uso correcto de /

  • sin compresión (-z)
  • latencia alta

Ventana de terminal
ufw allow 22/tcp

  • puerto 21 cerrado
  • modo pasivo no configurado

Usar:

  • SCP
  • SFTP
  • Rsync

Evitar FTP.


Ejemplo con cron:

Ventana de terminal
rsync -av --delete /data/ backup@server:/backup/

Evitar contraseñas en scripts.


  • chroot en SFTP
  • restringir usuarios

Monitorizar:

Ventana de terminal
journalctl -u ssh

Ventana de terminal
rsync --bwlimit=1000

Ventana de terminal
rsync -av --dry-run /src/ /dst/

Usar checksums:

Ventana de terminal
rsync -avc

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.