Como proteger o SSH em uma VPS Linux

Por Equipe de Engenharia da ONIE · Atualizado em 12 de novembro de 2026 · Leitura de 3 min

Uma VPS pública recebe tentativas de login automatizadas poucos minutos após entrar no ar. Estes passos tornam o SSH muito mais difícil de atacar. Eles foram escritos para Ubuntu ou Debian. Se você ainda não criou um servidor, pode alugar uma VPS Linux e começar a partir de uma imagem limpa. Mantenha sua sessão SSH atual aberta até testar as novas configurações em uma segunda janela.

1. Crie um usuário comum com sudo

adduser deploy
usermod -aG sudo deploy

2. Use chaves SSH em vez de senhas

No seu próprio computador:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Faça login uma vez com a chave para confirmar que ela funciona antes de desativar as senhas.

3. Desative o login por senha e como root

Crie /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Verifique a sintaxe e recarregue o serviço. O serviço se chama ssh no Ubuntu e no Debian e sshd em sistemas baseados em RHEL:

sudo sshd -t && sudo systemctl reload ssh

Abra um segundo terminal e faça login novamente. Só então feche a sessão antiga.

4. Ative um firewall

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Abra apenas as portas de que precisa, como 80 e 443 para um servidor web. Você também pode restringir o SSH ao seu próprio endereço IP com uma regra de firewall no painel da nuvem.

5. Bloqueie falhas repetidas com Fail2ban

sudo apt install -y fail2ban

Crie /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Instale atualizações de segurança automaticamente

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Extras opcionais

  • Mudar a porta do SSH reduz o ruído nos logs, mas não é uma medida de segurança por si só.
  • Proteja a chave privada com uma senha (passphrase) e mantenha um backup em local seguro.
  • Revise os logins com last e sudo journalctl -u ssh --since today.
  • Tire um snapshot depois que o servidor estiver configurado, para poder restaurar uma base limpa.

Se ficar sem acesso, use o console do navegador no painel da nuvem para entrar e corrigir a configuração. Nosso guia de proteção contra DDoS aborda a próxima camada de defesa.

Perguntas frequentes

É seguro desativar o login do root?

Sim, desde que você crie antes um usuário sudo e teste se a chave dele funciona. Você ainda pode executar comandos administrativos com sudo.

Preciso do Fail2ban se uso apenas chaves?

É opcional. Com o login por senha desativado, ataques de força bruta não têm como funcionar, mas o Fail2ban reduz o ruído nos logs e a carga do servidor.

E se eu perder minha chave SSH?

Use o console do painel da nuvem para entrar, adicione uma nova chave pública em ~/.ssh/authorized_keys e remova a antiga.

Fontes e leituras complementares

Mais guias de VPS