Tutoriais

Como configurar autenticação SSH por chave e desativar senha

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.conf com PasswordAuthentication yes). Verifique com sudo 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_keys do 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.

Compartilhar:

Pronto para hospedar seu próximo projeto?

VPS com painel pré-instalado em 1 clique. Ativação imediata.

Ver planos VPS