Como desativar a autenticação por senha no SSH e aceitar só chave
Olá, pessoal! Aqui é a Sensei da GeHost 🥋 E hoje o assunto é para quem já manja um pouco de terminal e quer deixar o acesso SSH do servidor bem mais seguro. Vamos trocar a "senha" por uma "chave" — pensa assim: em vez de um cadeado que abre com uma combinação de números (que alguém pode tentar adivinhar), você vai usar uma chave física exclusiva sua, que ninguém mais tem uma cópia.
Antes de começar: este guia é para quem já tem acesso SSH com privilégios administrativos no próprio servidor. Se você não sabe se o seu plano inclui esse tipo de acesso, dá uma olhada no painel.gehost.com.br ou fale com o nosso suporte antes de seguir — assim você não corre nenhum risco à toa.
Passo 1 — Gerar o seu par de chaves SSH
A chave SSH vem sempre em par: uma privada (fica só com você, nunca compartilhe) e uma pública (essa você entrega pro servidor). No seu computador, abra o terminal e digite:
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"
Aperte Enter nas perguntas para aceitar o local padrão. Quando ele perguntar por uma passphrase (uma senha extra pra proteger a própria chave), recomendamos fortemente criar uma — é uma camada extra de segurança, caso alguém tenha acesso ao seu computador.
Passo 2 — Enviar a chave pública para o servidor
Agora é hora de "entregar a cópia da chave" para o seu servidor reconhecer você. O jeito mais simples é usando o comando abaixo (troque usuario e seu-servidor pelos seus dados de acesso):
ssh-copy-id usuario@seu-servidor
Se o seu sistema não tiver esse comando disponível, dá pra fazer manualmente: copie o conteúdo do arquivo ~/.ssh/id_ed25519.pub (a chave pública) e cole dentro do arquivo ~/.ssh/authorized_keys no servidor, dentro da pasta do usuário que você usa para conectar.
Passo 3 — Testar o login por chave (não pule esta etapa!)
Esse é o passo mais importante do guia. Abra um novo terminal (sem fechar o que já está conectado) e tente logar normalmente:
ssh usuario@seu-servidor
Se você conseguiu entrar sem digitar a senha da conta (só a passphrase da chave, se tiver criado uma), maravilha — a chave está funcionando e você pode seguir para o próximo passo.
Dica de ouro da Sensei: nunca desative a senha antes de confirmar que a chave funciona. Se algo der errado na configuração e você fechar a sessão sem testar, pode acabar trancado(a) para fora do próprio servidor. Mantenha sempre uma sessão SSH já conectada aberta enquanto testa a nova — é a sua rede de segurança.
Passo 4 — Desativar a autenticação por senha no servidor
Com a chave testada e funcionando, abra o arquivo de configuração do SSH no servidor:
sudo nano /etc/ssh/sshd_config
Procure (ou adicione) as linhas abaixo e deixe assim:
PasswordAuthentication no PubkeyAuthentication yes
Salve o arquivo e reinicie o serviço SSH para aplicar a mudança:
sudo systemctl restart sshd
Passo 5 — Confirme tudo antes de fechar a sessão antiga
- Deixe a sessão SSH que você já estava usando aberta, sem fechar.
- Abra um novo terminal e tente logar de novo com a chave.
- Tente também logar usando a senha antiga — o servidor deve recusar e pedir a chave.
- Só depois de confirmar os dois testes acima, feche a sessão antiga.
Outra dica importante: confira as permissões da sua pasta.sshe dos arquivos dentro dela — muitos servidores recusam a chave se as permissões estiverem abertas demais. O padrão seguro échmod 700 ~/.sshechmod 600 ~/.ssh/authorized_keys.
Pronto! O que você ganhou com isso?
A partir de agora, só quem tiver a sua chave privada consegue entrar no servidor via SSH — ataques automáticos que tentam adivinhar senha (os famosos "brute force") simplesmente não vão mais funcionar contra essa porta. É uma das melhorias de segurança mais efetivas que existem.
Se em algum momento você se sentir insegura(o) com algum passo, ou algo não funcionar como esperado, para por aí e chama o nosso suporte antes de mexer mais — a gente prefere te ajudar com calma do que ver você trancado(a) fora do próprio servidor. 💙