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.

  1. 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 ssh

Abaixo 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 remotas

A 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 ssh

Criar 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.

  1. Execute o seguinte comando para criar um novo grupo ‘ sftpgroup ‘.
sudo groupadd sftpgroup
  1. Crie um novo usuário ‘ sftpuser ‘ usando o seguinte comando.
sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

Opçõ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.
  1. Em seguida, crie a senha para o usuário ‘ sftpuser ‘ usando o comando abaixo.
passwd sftpuser

Digite sua senha forte e repita, em seguida pressione ‘ Enter ‘ para confirmar.

Adicionar usuário e grupo sftpserver

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.

  1. 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
  1. 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/sftpuser

Dê permissão ao grupo para ler e executar, mas não para escrever.

sudo chmod g+rx /srv/sftpuser
  1. 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

configurar diretório chroot jail para stpuser

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 ‘ sftpusernã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’.

  1. Edite a configuração ssh ‘ /etc/ssh/sshd_config ‘ usando nano ou vim.
sudo nano /etc/ssh/sshd_config
  1. Comente a seguinte configuração para desativar o recurso autônomo ‘ sftp-server ‘.
#Subsystem      sftp    /usr/lib/openssh/sftp-server
  1. Cole a seguinte configuração no final da linha.
Subsystem sftp internal-sftp  
  
Match Group sftpgroup  
     ChrootDirectory %h  
     X11Forwarding no  
     AllowTCPForwarding no  
     ForceCommand internal-sftp

Salve 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 ‘.
  1. Para aplicar uma nova configuração, reinicie o serviço ssh usando o comando abaixo.
sudo systemctl restart sshd

O 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.

  1. Para se conectar ao servidor SFTP, execute o comando sftp como abaixo.
sftp ftpuser@SERVER-IP

Se 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-IP

Digite a senha para o ‘ sftpuser ‘.

  1. 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

Conectar ao sftpserver com comando sftp

  1. 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 /
  1. 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/

Verificar leitura e escrita no sftpserver

  1. 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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.