Referência de comandos SFTP
Todos os comandos do cliente sftp do OpenSSH, com sintaxe e exemplos – conectar, navegar, transferir, permissões e automação em lote. Funciona igual no Windows 10/11, no macOS e no Linux, que trazem todos o cliente OpenSSH.
Atualizado em julho de 2026
Conectando a um servidor
O SFTP roda sobre SSH (porta 22, por padrão), então a autenticação e a verificação da chave do servidor funcionam exatamente como no ssh. Estas opções vão na linha de comando antes de a sessão começar:
| Comando / opção | O que ele faz | Exemplo |
|---|---|---|
sftp user@host | Inicia uma sessão SFTP interativa. | sftp alice@example.com |
-P port | Conecta a uma porta fora do padrão (atenção: P maiúsculo, diferente do ssh). | sftp -P 2222 alice@example.com |
-i keyfile | Autentica com uma chave privada SSH específica. | sftp -i ~/.ssh/deploy_key alice@example.com |
-b file | Modo de lote – roda comandos de um arquivo, sem interação. | sftp -b upload.txt alice@example.com |
-r | Torna get/put recursivos para a sessão inteira. | sftp -r alice@example.com |
sftp user@host:path | Busca um arquivo direto e sai (sem sessão interativa). | sftp alice@example.com:/logs/app.log |
Se a conexão for recusada ou travar, confira antes o servidor com o testador de conexão SFTP, e veja quais métodos de autenticação ele aceita com o verificador de métodos de autenticação SFTP.
Baixando e enviando
| Comando | O que ele faz | Exemplo |
|---|---|---|
get | Baixa um arquivo do servidor. | get report.pdf |
get -r | Baixa um diretório e tudo o que há nele. | get -r backups |
put | Envia um arquivo local para o servidor. | put site.zip |
put -r | Envia um diretório de forma recursiva. | put -r dist |
mget | Baixa vários arquivos que casam com um padrão. | mget *.log |
mput | Envia vários arquivos que casam com um padrão. | mput *.html |
reget | Retoma um arquivo baixado pela metade. | reget big-backup.tar |
reput | Retoma um arquivo enviado pela metade. | reput big-backup.tar |
progress | Liga e desliga o medidor de progresso da transferência. | progress |
Não existe alternância ascii/binary – o SFTP sempre transfere os arquivos byte a byte, então nada é corrompido por conversão de fim de linha.
Modo de lote e automação
Para transferências sem supervisão, coloque os comandos em um arquivo (um por linha) e rode o sftp em modo de lote. O modo de lote aborta no primeiro erro e exige autenticação por chave – ele não consegue pedir uma senha:
# 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
Isso funciona, mas cada tarefa recorrente significa manter um script, uma chave e uma entrada no Agendador de Tarefas. Se você prefere definir "enviar esta pasta toda noite às 2:00" em uma interface – com novas tentativas, avisos e histórico – é isso que as transferências agendadas do FTPie fazem.
Sobre os comandos de SFTP
O SFTP (SSH File Transfer Protocol) não é FTP sobre SSH – é um protocolo separado, construído sobre a camada de conexão do SSH e definido na série draft-ietf-secsh-filexfer da IETF. O comando sftp no Windows, no macOS e no Linux é a implementação de cliente do OpenSSH, e o conjunto de comandos dele é o que esta página documenta. Como tudo roda dentro do SSH, uma única porta aberta (a 22) carrega autenticação, comandos e dados criptografados – sem faixas de portas de modo passivo nem certificados TLS para configurar.
Vindo do FTP clássico? Os conjuntos de comandos se sobrepõem, mas diferem em pontos importantes – veja a referência de comandos FTP para os comandos do ftp.exe e do protocolo da RFC 959.
Perguntas frequentes
Não. O SFTP é um protocolo diferente, que roda sobre SSH, e o conjunto de comandos é parecido, mas não idêntico. Comandos principais como get, put, cd, ls e bye funcionam nos dois, mas o SFTP acrescenta comandos no estilo Unix, como chmod, ln e df, usa reget/reput para retomar transferências e não tem modo ascii nem binary – toda transferência é binária. Comandos como mdelete, hash ou literal, dos clientes FTP clássicos, não existem no sftp.
Use a opção -r (recursiva): get -r pastadoprojeto baixa uma árvore de diretórios inteira, e put -r pastadoprojeto envia uma. O diretório de destino não pode já conter arquivos conflitantes. Você também pode iniciar a sessão com sftp -r usuario@servidor para que as transferências já sejam recursivas por padrão.
Use reget arquivo para retomar um download parcial e reput arquivo para retomar um envio. O arquivo parcial precisa continuar no lugar; o cliente compara os tamanhos e continua de onde parou.
Tem. O Windows 10 (a partir da versão 1809) e o Windows 11 trazem o cliente OpenSSH, então você pode rodar sftp usuario@servidor direto do Prompt de Comando ou do PowerShell, sem instalar nada.
Coloque um comando por linha em um arquivo de texto e rode sftp -b lote.txt usuario@servidor. O modo de lote exige autenticação não interativa, o que na prática significa configurar antes a autenticação por chave SSH. Para tarefas recorrentes – envios agendados, backups, sincronizações – um cliente com agendador embutido poupa você de manter scripts e entradas no Agendador de Tarefas.
Prefere um cliente SFTP visual?
O FTPie é um cliente SFTP moderno para Windows, com autenticação por chave SSH, verificação da chave do servidor, transferências recursivas por arrastar e soltar e um agendador embutido – gratuito para até 3 conexões com servidores.
Download FTPie Free