Senhas de SSH são adivinhadas. Chaves não. Mudar seu VPS para login por chave é a maior melhoria de segurança que você pode fazer, e leva cerca de cinco minutos.
Como funcionam as chaves SSH
Você cria um par de arquivos. A chave privada fica no seu computador e nunca é compartilhada. A chave pública vai para o servidor. Ao se conectar, o servidor desafia seu computador a provar que possui a chave privada correspondente, sem que a chave jamais atravesse a rede.
1. Crie um par de chaves
ssh-keygen -t ed25519 -C "me@laptop"
Chaves Ed25519 são curtas, rápidas e modernas. Escolha uma senha (passphrase) quando solicitado, para que um notebook roubado não signifique um servidor roubado. No Windows 10 e 11, o mesmo comando funciona no PowerShell.
2. Copie a chave pública para o servidor
ssh-copy-id user@your.server.ip
Sem o ssh-copy-id, acrescente o conteúdo de ~/.ssh/id_ed25519.pub a ~/.ssh/authorized_keys no servidor e depois execute chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.
3. Teste antes de desativar as senhas
Abra um segundo terminal e faça login com a chave. Mantenha a primeira sessão aberta até isso funcionar, para que um erro não deixe você trancado do lado de fora.
4. Desative o login por senha
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh
A verificação sshd -t detecta erros de digitação antes que eles quebrem seu acesso. Em alguns sistemas o serviço se chama sshd em vez de ssh.
5. Uma configuração de cliente organizada
# ~/.ssh/config
Host myvps
HostName your.server.ip
User deploy
IdentityFile ~/.ssh/id_ed25519
Agora basta digitar ssh myvps.
Boas práticas
- Use uma chave separada por dispositivo, para poder revogar uma sem mexer nas outras.
- Use o
ssh-agentpara digitar a senha (passphrase) uma vez por sessão. - Remova chaves do
authorized_keysquando um dispositivo for perdido ou um funcionário sair. - Adicione o fail2ban para reduzir o ruído nos logs, como em nosso checklist de hardening em 15 minutos.