Saltar para o conteúdo

Configurando um SFTP Server

maio 15, 2026

Contexto

Recentemente em meu trabalho, surgiu uma demanda para realizar o upload de arquivos em um Windows Server do Cliente a partir de uma aplicação presente em outro servidor (Ubuntu), e fui questionado se era possível. Disse que poderíamos utilizar o protocolo SFTP para isso, e após a validação da equipe, fui responsável por estudar e entender como configurar um servidor para esse protocolo, para depois adicionarmos no servidor do cliente a configuração.

Estudando um pouco, vi que o SFTP utiliza o protocolo SSH para realizar uma sessão de comunicação segura entre o cliente e Servidor, o que significa que o protocolo SFTP se preocupe em apenas realizar suas operações, como busca e envio de arquivos, deixando a segurança com o SSH. Decidi então simular essa configuração na minha rede local, para entender de uma vez como configurar e utilizar um servidor SFTP.

Nota: (Estou escrevendo isso enquanto configuro minha simulação. Os tempos verbais devem se misturar um pouco, não se preocupe quanto à isso).

Como vai funcionar?

A minha simulação será feita utilizando duas máquinas: Uma computador com Ubuntu26.04 (o cliente), e uma vm com Ubuntu24.04 (o servidor sftp). Por mais que a simulação não seja 100% real com o cenário que irei atuar, a configuração de chaves, serviços e permissões me darão uma boa base para quando for replicar no servidor do cliente.

Pesquisando um pouco, vi que instalar o openssh-server em meu servidor será o suficiente para utilzar o sftp, já que ele roda em cima do protocolo SSH. O OpenSSH é um conjunto de ferramentas de código aberto que oferece serviço de acesso remoto à computadores a partir do protocolo SSH, e o primeiro passo será justamente instalá-lo em nosso servidor

Nota 2: Esse post não é um tutorial, mas sim um registro de como fiz para configurar os serviços

Configurando o Servidor

Autenticado no servidor, instalei o openssh-server via apt

landscape
Instalando o openssh

Criei um grupo novo, e na sequência um novo usuário, adicionando-o no grupo criado anteriormente

landscape
Criando grupo e usuário para o SFTP

Após ter criado o novo grupo e o novo usuário, executei mais alguns comandos de criação de diretórios e permissões dentro do ‘servidor’

sudo chown root:root /home/my-sftp-user
sudo chmod 755 /home/my-sftp-user

sudo mkdir -p /home/my-sftp-user/upload
sudo chown my-sftp-user:my-sftp-user /home/my-sftp-user/upload
sudo chmod 755 /home/my-sftp-user/upload

Foi criado uma pasta chamada upload, dentro do diretório /home/my-sftp-user, nós iremos subir o arquivo de teste dentro dessa pasta. Da primeira vez que realizei esse teste eu subi o arquivo diretamente em /home/my-sftp-user, mas para documentar preferi fazer dessa forma.

Acessei o modo de edição do arquivo /etc/ssh/sshd_config e adicionei o seguinte bloco ao final do arquivo e salvei:

landscape
Permissão na pasta do usuário do SFTP

Significado das configurações:

  • Match group my-sftp-group » As configurações só serão aplicadas para os usuários que estão no grupo ‘my-sftp-group’
  • ChrootDirectory /home/my-sftp-user » Confira qual será a pasta raiz a partir da conexão SFTP. Nesse caso, o diretório raiz será /home/my-sftp-user, isso significa que eu não consigo acessar uma pasta que esteja um nível acima, como /home ou /home/vinicius.
  • x11Forwarding no » Desabilita o encaminhamento gráfico X11, o usuário não consegue abrir aplicações gráficas de forma remota via SSH
  • AllowTcpForwarding no » Desabilita túnel/redirecionamento TCP pelo SSH
  • ForceCommand internal-sftp » Força o usuário a utilizar somente ao protocolo SFTP

Após salvar o arquivo de configuração no servidor, vou mudar o ambiente para a máquina do cliente. Vou acessar o servidor sftp usando algumas credenciais: Nome do usuário criado anteriormente, a senha desse usuário e o endereço IP do servidor SFTP, e na sequência enviar o arquivo file.txt para a pasta upload

landscape
Upload de arquivo via SFTP

Sucesso, o arquivo subiu para a pasta do nosso usuário no servidor sem nenhum problema. Voltando no servidor para visualizar o arquivo enviado anteriormente, conseguimos achar ele:

landscape
Conferindo arquivo enviado no servidor

Após ter feito essa pequena prova de conceito, realizei toda a configuração no ambiente do cliente, sendo o Windows Server o Servidor SFTP, e a VPS com Ubuntu o cliente. A equipe de desenvolvimento realizou os testes e tudo funcionou perfeitamente. Vou deixar nas referências o vídeo que utilizei como base.

Referências

Vídeo do canal Learning Software

Última modificação