Transferencia de archivos con FTP/SFTP: guía completa 2026

transferencia-de-archivos-con-ftp-sftp
transferencia-de-archivos-con-ftp-sftp

La Transferencia de archivos con FTP/SFTP sigue siendo una tarea básica en administración de sistemas, desarrollo web y soporte técnico: subir una web a un servidor, descargar una copia de seguridad, mover logs, publicar imágenes, copiar configuraciones o intercambiar documentos con una máquina remota.

En esta guía aprenderás qué son FTP/SFTP, en qué se diferencian, cuándo usar cada uno, cómo conectarte desde clientes gráficos y desde la terminal, qué comandos básicos conviene dominar, cómo diagnosticar fallos frecuentes y qué buenas prácticas aplicar para trabajar con más seguridad.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis

👉 También te dejo por aquí una guía de comandos Linux por categorías

Qué significa transferir archivos por red

Cuando transfieres archivos por red normalmente participan dos partes:

  • Cliente: tu ordenador, terminal o aplicación de transferencia.
  • Servidor: la máquina remota donde están los archivos o donde quieres dejarlos.

El cliente se conecta al servidor usando un protocolo. Ese protocolo define cómo se autentica el usuario, cómo se listan las carpetas, cómo se suben y descargan archivos, qué puertos se usan y si la comunicación viaja cifrada o no.

FTP/SFTP sirven para mover archivos, pero no son equivalentes. Comparten una finalidad parecida, aunque funcionan de forma distinta y tienen implicaciones de seguridad muy diferentes.

Qué es FTP

FTP significa File Transfer Protocol. Es uno de los protocolos clásicos para transferir archivos entre equipos y durante muchos años fue la forma habitual de subir archivos a servidores web, sobre todo en alojamientos compartidos.

Con FTP puedes:

  • Conectarte a un servidor remoto.
  • Ver carpetas y archivos.
  • Subir archivos desde tu equipo.
  • Descargar archivos del servidor.
  • Crear, renombrar o borrar carpetas, si tu usuario tiene permisos.

El punto importante es que el FTP tradicional no cifra la conexión. En su forma básica, el usuario, la contraseña y el contenido pueden viajar en texto claro por la red. Por eso, FTP puro no debería usarse para información sensible ni para entornos modernos salvo que no exista otra alternativa y el riesgo esté controlado.

Cuando un proveedor ofrece FTP, conviene comprobar si también permite FTPS o SFTP. FTPS añade cifrado sobre FTP mediante TLS; SFTP, en cambio, usa SSH y es un protocolo distinto.

Puertos y modos de FTP

FTP suele usar el puerto 21 para la conexión de control. Esa conexión sirve para autenticar al usuario y enviar comandos. Sin embargo, para transferir datos FTP abre conexiones adicionales, y ahí aparecen muchos problemas con cortafuegos, NAT o redes corporativas.

FTP puede funcionar en dos modos:

  • Modo activo: el servidor intenta abrir una conexión hacia el cliente para enviar datos.
  • Modo pasivo: el cliente abre también la conexión de datos hacia el servidor.

En la práctica, el modo pasivo suele funcionar mejor detrás de routers y firewalls, porque evita que el servidor tenga que iniciar una conexión hacia tu equipo. Si puedes autenticarte por FTP pero no puedes listar carpetas o descargar archivos, el modo activo/pasivo es una de las primeras cosas que debes revisar.

Qué es SFTP

SFTP significa SSH File Transfer Protocol. Aunque el nombre se parece a FTP, no es «FTP seguro» ni FTP con una opción extra. SFTP funciona sobre SSH, el mismo sistema que se usa para administrar servidores Linux de forma remota con el comando ssh.

Esto aporta varias ventajas:

  • La conexión va cifrada de extremo a extremo.
  • La autenticación puede usar contraseña o claves SSH.
  • Normalmente solo necesita el puerto 22.
  • Encaja muy bien en servidores Linux y Unix.
  • Aprovecha usuarios, permisos y configuración de SSH.

Cuando usas SFTP, tanto las credenciales como los comandos y el contenido de los archivos viajan dentro de una sesión cifrada. Por eso suele ser la opción recomendada para administrar archivos en servidores actuales.

Si ya puedes entrar a un servidor por SSH, es muy probable que también puedas usar SFTP con el mismo usuario, el mismo host y el mismo puerto.

Diferencias entre FTP y SFTP

FTP/SFTP permiten subir y descargar archivos, pero internamente resuelven el problema de forma distinta.

  • Si necesitas seguridad, elige SFTP.
  • Si administras un servidor Linux, SFTP suele ser la opción natural.
  • Si el sistema solo ofrece FTP, úsalo con precaución o busca FTPS.
  • Si FTP conecta pero no lista archivos, revisa el modo pasivo y el firewall.
  • Si vas a sincronizar muchas carpetas de forma repetida, quizá te convenga rsync sobre SSH.

Clientes gráficos para FTP/SFTP

No siempre necesitas usar la terminal. Los clientes gráficos permiten arrastrar y soltar archivos, comparar carpetas, guardar perfiles de conexión y trabajar de forma visual.

FileZilla

FileZilla es uno de los clientes más conocidos y soporta FTP, FTPS y SFTP.

Los datos habituales para conectarte son:

  • Servidor: dominio o IP, por ejemplo example.com o 192.0.2.10.
  • Usuario: el usuario remoto.
  • Contraseña: si no usas clave SSH.
  • Puerto: 21 para FTP, 22 para SFTP.
  • Protocolo: FTP, FTPS o SFTP.

Para SFTP en FileZilla, conviene elegir explícitamente SFTP – SSH File Transfer Protocol en el gestor de sitios. No basta con escribir el puerto 22 si el protocolo seleccionado sigue siendo FTP.

WinSCP

WinSCP es muy usado en Windows. Resulta cómodo para SFTP y SCP, permite guardar sesiones, sincronizar carpetas y editar archivos remotos con un editor local.

Es una buena opción para usuarios que quieren una interfaz gráfica, pero también necesitan funciones de administración más avanzadas que un simple gestor de archivos.

Cyberduck

Cyberduck funciona en macOS y Windows. Tiene una interfaz limpia y soporta varios servicios además de FTP/SFTP. Es útil si quieres gestionar conexiones remotas sin entrar demasiado en detalles técnicos.

Gestores de archivos en Linux

En muchos escritorios Linux puedes conectarte desde el gestor de archivos usando rutas como:

sftp://usuario@servidor

Esto permite navegar por carpetas remotas como si fueran ubicaciones del sistema. Aunque la experiencia sea visual, por debajo sigue existiendo una conexión SFTP.

Cómo conectarse por SFTP desde la terminal

En Linux, macOS y versiones modernas de Windows normalmente tienes disponible el comando sftp.

La conexión básica es:

sftp usuario@servidor

Por ejemplo:

sftp [email protected]

Si SSH usa un puerto distinto al 22, debes indicarlo con -P en mayúscula:

sftp -P 2222 [email protected]

Este detalle es importante: en sftp, la opción de puerto es -P; en ssh, suele usarse -p en minúscula.

Si necesitas usar una clave privada concreta:

sftp -i ~/.ssh/id_ed25519 [email protected]

Una vez conectado verás un prompt parecido a este:

sftp>

Desde ahí puedes ejecutar comandos para moverte por el servidor, revisar tu carpeta local, subir archivos y descargar contenido.

Comandos básicos de SFTP

Dentro de una sesión SFTP conviene distinguir siempre entre la ubicación remota y la ubicación local. Muchos errores ocurren porque el usuario cree estar en una carpeta, pero realmente está trabajando en otra.

Ver la carpeta remota actual:

pwd

Ver la carpeta local actual:

lpwd

Listar archivos remotos:

ls

Listar archivos locales:

lls

Cambiar de carpeta remota:

cd /var/www/html

Subir un archivo:

put index.html

Descargar un archivo:

get backup.sql

Crear una carpeta remota:

mkdir uploads

Borrar un archivo remoto:

rm archivo.txt

Salir de la sesión:

exit

La regla mental es sencilla: los comandos sin l suelen actuar sobre el servidor remoto; los comandos que empiezan por l actúan sobre tu equipo local. Por ejemplo, pwd, ls y cd son remotos; lpwd, lls y lcd son locales.

Ejemplo práctico: subir una web estática por SFTP

Imagina que tienes una carpeta local llamada sitio/ con estos archivos:

sitio/
├── index.html
├── styles.css
└── img/
    └── logo.png

Quieres subirla a /var/www/html en el servidor.

Primero entra en la carpeta local:

cd ~/proyectos/sitio

Después conecta por SFTP:

sftp [email protected]

Comprueba dónde estás en remoto:

pwd

Ve al directorio web:

cd /var/www/html

Comprueba también la carpeta local desde la que vas a subir:

lpwd

Sube los archivos:

put index.html
put styles.css
put -r img

Lista el resultado en el servidor:

ls

Y cierra la sesión:

exit

Este flujo es simple, pero requiere atención. Si subes los archivos a la ruta equivocada, la web no cambiará. Si el usuario no tiene permisos de escritura, la transferencia fallará. Si los archivos quedan con propietario o permisos incorrectos, el servidor web puede no leerlos aunque estén en la carpeta correcta.

SFTP, SCP y rsync: parecidos, pero no idénticos

Al hablar de transferencias por SSH aparecen otros comandos relacionados. Conviene saber cuándo encaja cada uno.

SFTP

SFTP es interactivo y cómodo para navegar, listar, subir y descargar. También lo usan muchos clientes gráficos. Es ideal cuando quieres explorar carpetas remotas o trabajar manualmente con varios archivos.

SCP

SCP sirve para copiar archivos de forma directa, es rápido para copias simples, pero menos cómodo para explorar carpetas.

📌 Si quieres profundizar, puedes revisar una guía específica sobre transferencia de archivos con SCP.

RSYNC

rsync sincroniza archivos y evita reenviar lo que no cambió.

Es excelente para despliegues repetidos, backups y carpetas grandes. Si vas a copiar una carpeta completa muchas veces, rsync suele ser más eficiente que subir todo de nuevo con SFTP.

📌 Tambien tenemos un post donde hablamos de la transferencia de archivos con rsync

Errores frecuentes y cómo diagnosticarlos

La transferencia de archivos puede fallar por red, autenticación, permisos, rutas o configuración del servidor. Estos son los problemas más comunes.

Connection refused

El mensaje Connection refused suele indicar que no hay ningún servicio escuchando en ese puerto o que el firewall rechaza la conexión.

Si estás usando SFTP, comprueba primero si SSH funciona:

ssh usuario@servidor

Si el puerto no es el 22, prueba con el puerto correcto:

ssh -p 2222 usuario@servidor<br>sftp -P 2222 usuario@servidor

En el servidor, si tienes acceso, puedes revisar el servicio y los puertos:

sudo systemctl status ssh
sudo ss -tlnp | grep :22

Permission denied

Permission denied puede significar contraseña incorrecta, clave SSH no aceptada o falta de permisos sobre la carpeta de destino.

Para diagnosticar autenticación SSH:

ssh -v usuario@servidor

La opción -v muestra información detallada del intento de conexión.

Si el login funciona pero no puedes escribir en una carpeta, revisa permisos:

ls -ld /ruta/destino
ls -l /ruta/destino

No such file or directory

Este error indica que la ruta no existe o que estás en una carpeta distinta de la que crees. Dentro de SFTP, confirma la ubicación remota:

pwd
ls

Y confirma también la ubicación local:

lpwd
lls

Esta doble comprobación evita subir desde una carpeta local equivocada o buscar un archivo que no está donde pensabas.

FTP conecta, pero no lista archivos

Este problema suele estar relacionado con el modo activo/pasivo o con el firewall. Prueba el modo pasivo en el cliente FTP. Si administras el servidor, configura el rango de puertos pasivos y abre esos puertos.

Conclusión

FTP/SFTP sirven para transferir archivos, pero no deberían tratarse como si fueran lo mismo. FTP es histórico y todavía aparece en alojamientos o sistemas heredados, pero su versión básica no cifra la comunicación y puede complicarse con firewalls. SFTP, al funcionar sobre SSH, ofrece cifrado, autenticación robusta y una configuración más sencilla en servidores modernos.

Para la mayoría de casos actuales, la recomendación práctica es clara: usa SFTP si tienes acceso SSH. Usa FTP solo cuando no haya alternativa, y preferiblemente sustituye FTP puro por SFTP, FTPS o una herramienta más adecuada como rsync.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

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