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ónQué haceEjemplo
sftp user@hostInicia una sesión SFTP interactiva.sftp alice@example.com
-P puertoConecta a un puerto no estándar (ojo: P mayúscula, a diferencia de ssh).sftp -P 2222 alice@example.com
-i archivoclaveSe autentica con una clave privada SSH concreta.sftp -i ~/.ssh/deploy_key alice@example.com
-b archivoModo por lotes: ejecuta los comandos de un archivo sin interacción.sftp -b upload.txt alice@example.com
-rHace que get/put sean recursivos durante toda la sesión.sftp -r alice@example.com
sftp user@host:rutaDescarga 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

ComandoQué haceEjemplo
getDescarga un archivo del servidor.get report.pdf
get -rDescarga un directorio y todo su contenido.get -r backups
putSube un archivo local al servidor.put site.zip
put -rSube un directorio de forma recursiva.put -r dist
mgetDescarga varios archivos que coincidan con un patrón.mget *.log
mputSube varios archivos que coincidan con un patrón.mput *.html
regetReanuda una descarga parcialmente completada.reget big-backup.tar
reputReanuda una subida parcialmente completada.reput big-backup.tar
progressMuestra 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

¿Los comandos SFTP son los mismos que los de FTP?

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.

¿Cómo descargo o subo una carpeta entera con 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.

¿Cómo reanudo una transferencia SFTP interrumpida?

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.

¿Windows trae un comando SFTP integrado?

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.

¿Cómo automatizo transferencias SFTP con scripts?

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