Com uma chave SSH entras sem escrever palavra-passe e, se além disso desativares as palavras-passe, os bots que testam combinações contra o teu servidor deixam de ter alguma coisa para adivinhar.
1. Cria a tua chave (no teu computador)
O Windows 10/11, o Mac e o Linux trazem SSH. Abre um terminal (no Windows, o PowerShell) e escreve:
ssh-keygen -t ed25519
Carrega em Enter para a guardar no sítio predefinido e, se quiseres, põe-lhe uma frase-passe. São criados dois ficheiros na pasta .ssh do teu utilizador: id_ed25519 (privada: nunca a partilhes) e id_ed25519.pub (pública).
2. Envia-a para o servidor
A partir de Mac ou Linux:
ssh-copy-id root@203.0.113.10
A partir de Windows (PowerShell):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@203.0.113.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Vai pedir-te a palavra-passe uma última vez.
3. Experimenta-a
ssh root@203.0.113.10
Se entrares sem te pedir a palavra-passe do servidor, funciona. Não avances para o passo 4 se não tiver funcionado.
4. Desativa as palavras-passe por SSH
Com a sessão anterior aberta (por precaução), no servidor:
echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-so-chaves.conf
sshd -t && systemctl restart ssh
No Rocky Linux 8, muda diretamente a linha PasswordAuthentication para no em /etc/ssh/sshd_config; o serviço chama-se sshd: systemctl restart sshd.
O nome do ficheiro começa por 00- de propósito: no SSH vale o primeiro valor lido, e algumas imagens trazem outro ficheiro que volta a ativar as palavras-passe.
Abre outro terminal e confirma que continuas a entrar com a chave antes de fechares o primeiro.
Se perderes a chave
A consola VNC do painel não usa SSH, por isso aí a palavra-passe continua a funcionar. Se não te lembrares dela, gera uma nova em Definições → Repor a palavra-passe, entra por VNC e adiciona a tua chave nova a /root/.ssh/authorized_keys.
Para transferir ficheiros (WinSCP, FileZilla), usa a mesma chave privada: como enviar ficheiros.