Para transferência de arquivos em um VPS, prefira SFTP: ele funciona sobre SSH, cifra credenciais e conteúdo e normalmente usa uma única porta. SFTP não é “FTP com SSL” e não exige instalar um servidor FTP separado quando OpenSSH já atende ao caso. FTP puro transmite dados sem proteção e deve ser evitado na internet.
Comparação
| Protocolo | Criptografia | Portas | Uso |
|---|---|---|---|
| SFTP | SSH | uma porta do SSH | opção recomendada para administração e automação |
| FTPS explícito | TLS | controle + faixa passiva | compatibilidade com sistemas que exigem FTP |
| FTP | nenhuma | controle + dados | somente rede isolada e caso legado excepcional |
Pré-requisitos para SFTP
- OpenSSH Server atualizado;
- usuário individual sem privilégios desnecessários;
- autenticação por chave quando possível;
- firewall e console de emergência;
- diretório e quota planejados;
- backup e logs.
Uso simples com usuário Linux
Se o usuário pode acessar seu próprio diretório, normalmente basta OpenSSH ativo:
sftp usuario@hostname
put arquivo.zip
get relatorio.pdf
ls
pwdNo cliente gráfico, selecione explicitamente SFTP, informe hostname, porta SSH, usuário e chave/senha. Não selecione FTP usando a porta 22.
Restringir a somente SFTP
Para impedir shell, uma configuração pode usar o subsistema interno e regras Match. Revise a sintaxe da sua distribuição e não duplique uma linha Subsystem já existente:
Subsystem sftp internal-sftp
Match Group sftp_only
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding noCom ChrootDirectory %h, a raiz do chroot e seus componentes precisam pertencer a root e não ser graváveis pelo usuário. Crie uma subpasta gravável:
sudo chown root:root /home/cliente
sudo chmod 755 /home/cliente
sudo mkdir -p /home/cliente/uploads
sudo chown cliente:sftp_only /home/cliente/uploads
Validar sem perder acesso
- Mantenha uma sessão administrativa aberta.
- Execute
sudo sshd -t. - Recarregue o serviço SSH.
- Teste SFTP em outra sessão.
- Confirme que o usuário não abre shell e só grava na pasta prevista.
- Teste após reinício planejado.
Chaves e automação
Use uma chave por pessoa ou integração. Em authorized_keys, restrições como comando, origem e desativação de forwarding podem reduzir impacto, desde que testadas. Rotacione chaves e remova acessos de ex-colaboradores. Nunca incorpore chave privada em script público.
Quando FTPS é necessário
Alguns ERPs e equipamentos suportam apenas FTP/FTPS. Nesse caso, use daemon mantido, TLS obrigatório, certificado válido, modo passivo e uma faixa pequena liberada no firewall/NAT. Isole usuários, bloqueie login anônimo e limite escrita. Não confunda FTPS implícito e explícito; o cliente e servidor precisam usar o mesmo modo.
cPanel
Em hospedagem cPanel, SFTP normalmente depende de acesso SSH habilitado para a conta; contas FTP comuns usam FTP/FTPS e não viram usuários SSH. Use o hostname e configuração mostrados pelo painel. Em revenda, a disponibilidade depende do provedor e do pacote.
Diagnóstico
| Erro | Verifique |
|---|---|
| Connection refused | serviço, porta e firewall |
| Permission denied | usuário, chave, senha, shell e logs |
| bad ownership or modes | proprietário/permissão de toda a cadeia do chroot |
| Conecta, mas não grava | subpasta gravável, quota e filesystem |
| FTPS lista vazia/trava | faixa passiva, NAT e firewall |
Referência: OpenSSH e internal-sftp. Para clientes, veja FileZilla por FTP, FTPS ou SFTP e permissões Linux.
Recursos relacionados
Continue com materiais e serviços relacionados ao tema deste guia.