Como configurar autenticação SSH por chave e desativar senha
Senhas podem ser adivinhadas, reutilizadas ou vazadas. Chaves SSH são praticamente impossíveis de quebrar por força bruta. Configurar acesso por chave é uma das medidas mais importantes para proteger seu VPS.
Como funcionam as chaves SSH
Você gera um par de chaves:
- Chave privada: fica no seu computador e nunca deve ser compartilhada;
- Chave pública: é copiada para o servidor.
Ao conectar, o servidor verifica se você possui a chave privada correspondente, sem que ela trafegue pela rede.
1. Gere o par de chaves
No seu computador (Linux, macOS ou Windows com PowerShell):
ssh-keygen -t ed25519 -C "seu@email.com"
- Aceite o local padrão (
~/.ssh/id_ed25519); - Defina uma passphrase — ela protege a chave caso o arquivo seja roubado.
Serão criados id_ed25519 (privada) e id_ed25519.pub (pública).
Se precisar de compatibilidade com sistemas muito antigos, use
ssh-keygen -t rsa -b 4096.
2. Copie a chave pública para o servidor
Linux e macOS
ssh-copy-id usuario@SEU_IP
Windows (PowerShell)
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh usuario@SEU_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
3. Teste o acesso por chave
ssh usuario@SEU_IP
Se for pedida a passphrase da chave (e não a senha do servidor), funcionou.
4. Desative a autenticação por senha
Mantenha uma sessão SSH aberta durante este passo, para não perder o acesso em caso de erro.
Crie o arquivo /etc/ssh/sshd_config.d/99-seguranca.conf:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
Em algumas distribuições, arquivos em
sshd_config.d/com nomes que vêm antes na ordem alfabética podem sobrescrever suas opções (ex.:50-cloud-init.confcomPasswordAuthentication yes). Verifique comsudo sshd -T | grep -i passwordauthentication.
Valide a configuração e reinicie:
sudo sshd -t
sudo systemctl restart ssh # ou sshd, conforme a distribuição
5. Teste novamente em outra janela
Abra um novo terminal e conecte. Só feche a sessão antiga depois de confirmar que o acesso funciona.
Para confirmar que a senha está desativada:
ssh -o PubkeyAuthentication=no usuario@SEU_IP
# deve responder: Permission denied (publickey)
Usando o ssh-agent
Para não digitar a passphrase toda hora:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
No macOS, adicione --apple-use-keychain ao ssh-add para salvar no Keychain.
Boas práticas
- Use uma chave por dispositivo — facilita revogar se um notebook for perdido;
- Nunca envie a chave privada por e-mail ou chat;
- Revise periodicamente o
~/.ssh/authorized_keysdo servidor; - Guarde uma forma de acesso de emergência (o console do painel do provedor).
Conclusão
Com autenticação por chave e senha desativada, os ataques de força bruta ao SSH deixam de ser uma ameaça real.Configure isso no primeiro dia do seu VPS-NVME-BR da VittHost — e use o cupom SP-VITT20 para ganhar 20% de desconto na primeira fatura enquanto a promoção estiver ativa.