Referencia de comandos SFTP
Todos los comandos del cliente OpenSSH sftp con sintaxis y ejemplos: conexión, navegación, transferencias, permisos y scripts por lotes. Funciona de forma idéntica en Windows 10/11, macOS y Linux, que incluyen todos el cliente OpenSSH.
Actualizado en julio de 2026
Conectarse a un servidor
SFTP viaja sobre SSH (el puerto 22 de forma predeterminada), así que la autenticación y la verificación de la clave de host funcionan igual que con ssh. Estas opciones van en la línea de comandos antes de que empiece la sesión:
| Comando / opción | Qué hace | Ejemplo |
|---|---|---|
sftp user@host | Inicia una sesión SFTP interactiva. | sftp alice@example.com |
-P puerto | Conecta a un puerto no estándar (ojo: P mayúscula, a diferencia de ssh). | sftp -P 2222 alice@example.com |
-i archivoclave | Se autentica con una clave privada SSH concreta. | sftp -i ~/.ssh/deploy_key alice@example.com |
-b archivo | Modo por lotes: ejecuta los comandos de un archivo sin interacción. | sftp -b upload.txt alice@example.com |
-r | Hace que get/put sean recursivos durante toda la sesión. | sftp -r alice@example.com |
sftp user@host:ruta | Descarga un archivo directamente y sale (sin sesión interactiva). | sftp alice@example.com:/logs/app.log |
Si la conexión se rechaza o se queda colgada, comprueba primero el servidor con el probador de conexión SFTP, y mira qué métodos de autenticación acepta con el comprobador de métodos de autenticación SFTP.
Descargar y subir
| Comando | Qué hace | Ejemplo |
|---|---|---|
get | Descarga un archivo del servidor. | get report.pdf |
get -r | Descarga un directorio y todo su contenido. | get -r backups |
put | Sube un archivo local al servidor. | put site.zip |
put -r | Sube un directorio de forma recursiva. | put -r dist |
mget | Descarga varios archivos que coincidan con un patrón. | mget *.log |
mput | Sube varios archivos que coincidan con un patrón. | mput *.html |
reget | Reanuda una descarga parcialmente completada. | reget big-backup.tar |
reput | Reanuda una subida parcialmente completada. | reput big-backup.tar |
progress | Muestra u oculta el medidor de progreso de la transferencia. | progress |
No hay conmutador ascii/binary: SFTP transfiere siempre los archivos byte a byte, así que nada se corrompe por la conversión de fin de línea.
Modo por lotes y scripts
Para transferencias desatendidas, pon los comandos en un archivo (uno por línea) y ejecuta sftp en modo por lotes. Este modo se detiene en el primer error y exige autenticación por clave: no puede pedir una contraseña.
# upload.txt cd /var/www/site lcd C:\Projects\site\dist put -r . bye C:\> sftp -b upload.txt -i C:\keys\deploy_key deploy@example.com
Funciona, pero cada tarea recurrente implica mantener un script, una clave y una entrada en el Programador de tareas. Si prefieres definir en una interfaz «sube esta carpeta cada noche a las 2:00», con reintentos, notificaciones e historial, eso es justo lo que hacen las transferencias programadas de FTPie.
Sobre los comandos SFTP
SFTP (SSH File Transfer Protocol) no es FTP sobre SSH: es un protocolo aparte construido sobre la capa de conexión de SSH, definido en la serie del IETF draft-ietf-secsh-filexfer. El comando sftp de Windows, macOS y Linux es la implementación cliente de OpenSSH, y esta página documenta su conjunto de comandos. Como todo va dentro de SSH, un único puerto abierto (el 22) transporta la autenticación, los comandos y los datos cifrados: no hay rangos de puertos de modo pasivo ni certificados TLS que configurar.
¿Vienes del FTP clásico? Los conjuntos de comandos se solapan pero difieren en puntos importantes: consulta la referencia de comandos FTP para ftp.exe y los comandos del protocolo RFC 959.
Preguntas frecuentes
No. SFTP es un protocolo distinto que va sobre SSH, y su conjunto de comandos es parecido pero no idéntico. Comandos básicos como get, put, cd, ls y bye funcionan en ambos, pero SFTP añade comandos de estilo Unix como chmod, ln y df, usa reget/reput para reanudar transferencias y no tiene modo ascii/binary: todas las transferencias son binarias. Comandos como mdelete, hash o literal de los clientes FTP clásicos no existen en sftp.
Usa la opción -r (recursiva): get -r carpetaproyecto descarga todo un árbol de directorios y put -r carpetaproyecto sube uno. El directorio de destino no debe contener ya archivos en conflicto. También puedes iniciar la sesión con sftp -r user@host para que las transferencias sean recursivas de forma predeterminada.
Usa reget nombrearchivo para reanudar una descarga parcial y reput nombrearchivo para reanudar una subida. El archivo parcial debe seguir existiendo en el lado que recibe; sftp continúa desde donde se detuvo en lugar de empezar de nuevo.
Sí. Windows 10 (1809 y posteriores) y Windows 11 incluyen el cliente OpenSSH, así que puedes ejecutar sftp user@host directamente desde el Símbolo del sistema o PowerShell, sin software adicional. Los mismos comandos de esta página funcionan igual en Windows, macOS y Linux.
Pon un comando por línea en un archivo de texto y ejecuta sftp -b batch.txt user@host. El modo por lotes exige autenticación no interactiva, lo que en la práctica significa configurar antes el acceso con clave SSH. Para tareas recurrentes (subidas programadas, copias de seguridad, sincronizaciones) un cliente con planificador integrado te ahorra mantener scripts y entradas en el Programador de tareas.
¿Prefieres un cliente SFTP visual?
FTPie es un cliente SFTP moderno para Windows con autenticación por clave SSH, verificación de la clave de host, transferencias recursivas por arrastrar y soltar y un programador integrado: gratis hasta 3 conexiones de servidor.
Descargar FTPie gratis