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@servidorEsto 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@servidorPor 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:
pwdVer la carpeta local actual:
lpwdListar archivos remotos:
lsListar archivos locales:
llsCambiar de carpeta remota:
cd /var/www/htmlSubir un archivo:
put index.htmlDescargar un archivo:
get backup.sqlCrear una carpeta remota:
mkdir uploadsBorrar un archivo remoto:
rm archivo.txtSalir de la sesión:
exitLa 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.pngQuieres subirla a /var/www/html en el servidor.
Primero entra en la carpeta local:
cd ~/proyectos/sitioDespués conecta por SFTP:
sftp [email protected]Comprueba dónde estás en remoto:
pwdVe al directorio web:
cd /var/www/htmlComprueba también la carpeta local desde la que vas a subir:
lpwdSube los archivos:
put index.html
put styles.css
put -r imgLista el resultado en el servidor:
lsY cierra la sesión:
exitEste 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@servidorSi el puerto no es el 22, prueba con el puerto correcto:
ssh -p 2222 usuario@servidor<br>sftp -P 2222 usuario@servidorEn el servidor, si tienes acceso, puedes revisar el servicio y los puertos:
sudo systemctl status ssh
sudo ss -tlnp | grep :22Permission 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@servidorLa 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/destinoNo 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
lsY confirma también la ubicación local:
lpwd
llsEsta 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.
