Uma chave SSH são dois ficheiros: a chave privada, que fica no seu computador e nunca sai de lá, e a chave pública, que se copia para o servidor. Quem tem a privada entra; quem só tem a pública não consegue nada. Ao contrário de uma palavra-passe, não se adivinha, e é isso que acaba com a maioria dos ataques automáticos ao SSH. Este guia é para um VPS Linux seu, e os comandos são seus: o suporte não os faz por si (ver até onde vai o nosso suporte).
Passo a passo
| 1 |
Crie a chave no seu computador (não no servidor). No Windows 10 e 11, no PowerShell; no Mac e no Linux, no terminal: ssh-keygen -t ed25519 -C "o-meu-portatil". Carregue em Enter para aceitar o sítio proposto. Quando pedir uma frase-chave, escreva uma: protege a chave se alguém lhe roubar o ficheiro.
|
|
| 2 |
Veja a chave pública. No Mac e Linux: cat ~/.ssh/id_ed25519.pub. No PowerShell: type $env:USERPROFILE\.ssh\id_ed25519.pub. É uma única linha, que começa por ssh-ed25519. É a que vai para o servidor.
|
|
| 3 |
Copie-a para o servidor. No Mac e no Linux: ssh-copy-id utilizador@O.ENDERECO.DO.VPS. Se esse comando não existir (por exemplo no Windows), faça à mão, no servidor e com o seu utilizador: mkdir -p ~/.ssh, chmod 700 ~/.ssh, abra o ficheiro com nano ~/.ssh/authorized_keys, cole a linha inteira numa linha sua, grave, e termine com chmod 600 ~/.ssh/authorized_keys.
|
|
| 4 |
Teste numa janela nova. ssh utilizador@O.ENDERECO.DO.VPS. Se entrou sem pedir a palavra-passe do servidor, funcionou. (Se pediu a frase-chave, é a da chave, não a do servidor.) Se a chave está noutro sítio, indique-a com ssh -i caminho/da/chave utilizador@O.ENDERECO.DO.VPS.
|
|
| 5 |
Só agora, e se quiser, desligue a palavra-passe. No servidor, em /etc/ssh/sshd_config, ponha PasswordAuthentication no e reinicie o serviço (sudo systemctl restart ssh no Debian e Ubuntu, sudo systemctl restart sshd no AlmaLinux e Rocky). Antes de fechar a sessão, teste uma segunda entrada.
|
|
|
Desligar a palavra-passe sem a chave testada é a maneira mais comum de ficar sem acesso. Se a chave falhar e a palavra-passe estiver desligada, só o console do painel o salva: ver perdi o acesso SSH ao servidor. E uma chave privada perdida não se recupera: guarde uma cópia noutro sítio.
|
|
Confirme o que o servidor está mesmo a fazer. Algumas imagens trazem um ficheiro na pasta /etc/ssh/sshd_config.d/ que repõe a entrada por palavra-passe, mesmo depois de a ter desligado no ficheiro principal. Depois de reiniciar, sudo sshd -T | grep -i passwordauthentication mostra o valor que está realmente em vigor.
|
Se “Permission denied (publickey)”
| Causa |
O que verificar |
| Permissões abertas demais |
A pasta ~/.ssh deve estar a 700 e o ficheiro authorized_keys a 600. O SSH ignora a chave se o ficheiro for legível por outros. |
| A chave foi colada no utilizador errado |
O ficheiro tem de estar na pasta pessoal do utilizador com que entra, e não na de outro. |
| A linha foi partida ao colar |
Tem de ser uma só linha. Uma quebra a meio estraga-a. |
| O computador usa outra chave |
Indique-a com -i, ou veja qual o programa está a oferecer. |
| O serviço não aceita chaves |
Procure PubkeyAuthentication em sshd_config; por omissão está ligado. |
Quem usa o PuTTY em vez do PowerShell tem o PuTTYgen para criar a chave; o princípio é o mesmo. Para segurança do resto do servidor, a lista curta está em manter o VPS seguro: as seis coisas que contam.
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |