SFTP Linux · 6 min read · Sep 24, 2025
Como Instalar e Usar SFTP em Servidores Linux

SFTP ou SSH File Transfer Protocol é um método para transferir dados de forma segura entre dois computadores e mais. É FTP que roda em cima do protocolo SSH e aproveita sua segurança, e suporta totalmente sua autenticação.
Hoje, é recomendado que o SFTP seja usado em vez do FTP ou FTP/S legado. O SFTP é seguro por padrão porque é assim que o SSH funciona. Do ponto de vista da segurança, o SFTP também protege você contra a captura de senhas e ataques man-in-the-middle (MiTM).
Assim como o SSH, o SFTP protege a integridade dos dados usando criptografia e função hash criptográfica. Ele também suporta múltiplos métodos de autenticação segura, incluindo autenticação por senha e baseada em chave. Além disso, reduz a porta aberta do servidor para a rede externa, pois é executado na mesma porta que o protocolo SSH.
Pré-requisitos
Neste guia, você aprenderá como configurar um Servidor SFTP em um sistema Linux. Além disso, você aprenderá o comando básico do cliente sftp.
Abaixo está o ambiente atual para a implementação:
- Um Servidor Linux - você pode usar Debian, Ubuntu, CentOS, Fedora, Rocky ou qualquer outra distribuição Linux.
- Certifique-se de que os pacotes OpenSSH estão disponíveis em seu sistema Linux.
- Cliente SFTP - comando de linha de comando sftp ou qualquer cliente GUI conforme sua preferência.
Verificar Pacotes OpenSSH
Para configurar um servidor SFTP, os pacotes OpenSSH devem estar instalados em seu sistema Linux. Quase todos os servidores de distribuição Linux têm os pacotes OpenSSH instalados por padrão. Mas, caso você não tenha o pacote OpenSSH em seu sistema, você pode instalá-lo a partir do repositório oficial.
- Para ter certeza de que os pacotes OpenSSH estão instalados em seu sistema Linux, use o seguinte comando.
Para servidores Debian ou Ubuntu, você pode usar o comando dpkg abaixo.
dpkg -l | grep sshAbaixo está a saída do nosso sistema Debian.
ii libssh2-1:amd64 1.9.0-2 amd64 Biblioteca do cliente SSH2
ii openssh-client 1:8.4p1-5 amd64 shell seguro (SSH) cliente, para acesso seguro a máquinas remotas
ii openssh-server 1:8.4p1-5 amd64 servidor de shell seguro (SSH), para acesso seguro de máquinas remotas
ii openssh-sftp-server 1:8.4p1-5 amd64 módulo do servidor sftp do shell seguro (SSH), para acesso SFTP de máquinas remotasA primeira coluna ‘ ii ‘ significa que o pacote está instalado. O pacote ‘ openssh-sftp-server ‘ está instalado no sistema Debian/Ubuntu.
Você pode usar o comando rpm abaixo para usuários RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux.
rpm -qa | grep sshCriar Grupo e Usuário
Neste passo, você criará um novo grupo e usuário para o servidor SFTP. Usuários dentro deste grupo poderão acessar o servidor SFTP. Por razões de segurança, os usuários SFTP não podem acessar o serviço SSH; eles podem apenas acessar o servidor SFTP.
- Execute o seguinte comando para criar um novo grupo ‘ sftpgroup ‘.
sudo groupadd sftpgroup- Crie um novo usuário ‘ sftpuser ‘ usando o seguinte comando.
sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuserOpções detalhadas:
- -G: adiciona automaticamente o usuário ao ‘ sftpgroup ‘.
- -d: especifica o diretório home para o novo usuário.
- -s: define o padrão para o novo usuário como ‘ /sbin/nologin ‘, o que significa que o usuário não pode acessar o Servidor SSH.
- Em seguida, crie a senha para o usuário ‘ sftpuser ‘ usando o comando abaixo.
passwd sftpuserDigite sua senha forte e repita, em seguida pressione ‘ Enter ‘ para confirmar.

Para adicionar mais usuários, repita as etapas número 2 e 3, e o mais importante, todos os usuários SFTP devem estar no grupo ‘ sftpgroup ‘ sem acesso ao shell através do SSH.
Configurar Diretório Chroot Jail
Após criar um novo grupo e usuário, você deve criar e configurar o diretório chroot para os usuários SFTP.
- Para o usuário ‘sftpuser’, o novo diretório home será em ‘/srv/sftpuser’. Execute o comando abaixo para criá-lo.
mkdir -p /srv/sftpuser- Para configurar chroot para o usuário ‘ sftpuser ‘, você deve mudar a propriedade do diretório para o usuário root, mas manter o grupo para ler e executar sem acesso de escrita.
Mude a propriedade do diretório para o usuário ‘root’ usando o seguinte comando.
sudo chown root /srv/sftpuserDê permissão ao grupo para ler e executar, mas não para escrever.
sudo chmod g+rx /srv/sftpuser- Em seguida, crie um novo diretório ‘data’ dentro do diretório ‘ /srv/sftpuser ‘ e mude a propriedade desse diretório ‘ data ‘ para o usuário ‘ sftpuser ‘.
mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data
Até agora, abaixo estão os detalhes da configuração para o diretório do usuário SFTP.
- O diretório ‘ /srv/sftuser’ é o diretório home padrão.
- O usuário ‘ sftpuser ‘ não pode escrever no diretório ‘ /srv/sftpuser ‘, mas pode ler dentro desse diretório.
- O usuário ‘ sftpuser ‘ pode enviar arquivos para o servidor SFTP no diretório ‘ /srv/sftpuser/data ‘.
Habilitar SFTP no Servidor SSH
Para habilitar o servidor SFTP no OpenSSH, você deve editar a configuração SSH ‘/etc/ssh/sshd_config’.
- Edite a configuração ssh ‘ /etc/ssh/sshd_config ‘ usando nano ou vim.
sudo nano /etc/ssh/sshd_config- Comente a seguinte configuração para desativar o recurso autônomo ‘ sftp-server ‘.
#Subsystem sftp /usr/lib/openssh/sftp-server- Cole a seguinte configuração no final da linha.
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftpSalve a configuração e saia.
Configuração detalhada:
- Em vez de usar o sub-processo ‘ sftp-server ‘, estamos usando o ‘ internal-sftp ‘.
- O servidor SFTP habilitado para o grupo ‘ sftpgroup ‘.
- Para aplicar uma nova configuração, reinicie o serviço ssh usando o comando abaixo.
sudo systemctl restart sshdO servidor SFTP está pronto e acessível, e está rodando na mesma porta que o serviço SSH.
Acessar o Servidor SFTP
Do lado do cliente, usaremos o comando de linha sftp, que está instalado por padrão na maioria das Distribuições Linux. Mas, você também pode estar usando outro cliente de linha de comando ou cliente FTP GUI como FileZilla, Cyberduck, etc.
- Para se conectar ao servidor SFTP, execute o comando sftp como abaixo.
sftp ftpuser@SERVER-IPSe seu servidor SFTP e/ou SSH estiver rodando em uma porta personalizada, você pode usar o comando sftp como abaixo.
sftp -P PORT ftpuser@SERVER-IPDigite a senha para o ‘ sftpuser ‘.
- Uma vez conectado ao servidor SFTP, execute o seguinte comando.
Mostre o diretório de trabalho atual e liste todos os arquivos e diretórios disponíveis.
pwd
ls
- Envie um arquivo local para o servidor SFTP no diretório ‘/ ‘, o que resultará em ‘ permissão negada ‘, porque é o diretório chroot.
put /path/to/file/on/local /- Envie um arquivo local para o diretório ‘ /data/ ‘ no servidor SFTP. Se sua configuração estiver correta, seu arquivo será enviado para o diretório ‘ /data/ ‘.
put /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/
- Agora verifique os arquivos disponíveis no diretório ‘ /data ‘ usando o seguinte comando.
ls /data/E você verá seu arquivo enviado para o servidor SFTP.
Conclusão
Parabéns! Você configurou com sucesso o Servidor SFTP no sistema Linux. Esse tipo de configuração pode ser aplicada na maioria dos sistemas Linux com OpenSSH instalado em cima dele. Além disso, você aprendeu como configurar o diretório chroot para usuários SFTP e aprendeu o comando básico do cliente sftp.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.