EIVUS

Chaves SSH: boas práticas para acesso a servidor

Gere, armazene e rotacione chaves SSH; use agent e chaves por host.

Voltar ao blog

Use ED25519 ou RSA (4096); evite autenticação por senha. Guarde chaves privadas em um agent ou vault; use chaves diferentes por ambiente. Rotacione chaves periodicamente e revogue acesso quando membros saírem.

Tipo e tamanho da chave

  • ED25519: Preferido quando suportado. Chaves curtas, rápidas e seguras. Use por padrão para chaves novas.
  • RSA: Use 4096 bits se precisar de RSA (ex. legado ou compatibilidade). Evite 1024 ou 2048 para chaves novas quando 4096 for aceitável.
  • Evite: Autenticação por senha no SSH. Chaves (com passphrase se quiser) são mais fortes. Desabilite PasswordAuthentication no sshd_config quando a auth por chave estiver em uso.

Armazenamento e agent

  • Chaves privadas: Nunca compartilhe ou faça commit. Armazene em disco com permissões restritas (chmod 600). Prefira diretório dedicado (~/.ssh) e chaves separadas por função ou ambiente (ex. prod vs staging).
  • Agent: ssh-agent mantém chaves descriptografadas na memória. Você desbloqueia uma vez (passphrase); depois os logins usam o agent. Reduz digitação de passphrase e evita deixar chaves descriptografadas no disco.
  • Vault: Para times, use um gerenciador de segredos ou vault para emitir ou armazenar chaves SSH (ou certs). Chaves podem ser de curta duração; rotação centralizada.

Chaves por host ou por ambiente

  • Por quê: Se uma chave for comprometida, o raio de impacto fica limitado àquele ambiente ou host. Use chaves diferentes para prod, staging e pessoal/dev. Alguns times usam uma chave por servidor (alta segurança) ou por ambiente (equilíbrio prático).
  • Config: ~/.ssh/config permite especificar IdentityFile por host. Ex.: Host prod-*\n IdentityFile ~/.ssh/prod_ed25519.

Rotação e revogação

  • Rotacione periodicamente: Ex. anualmente ou após evento de segurança. Gere nova chave; adicione nova entrada em authorized_keys; remova a chave antiga após período de graça; depois apague a chave antiga dos clientes.
  • Quando alguém sair: Remova a chave pública dessa pessoa de todos os authorized_keys (e do config management, bastions etc.) imediatamente. Revogue certs emitidos. Se usar vault ou CA, revogue o acesso lá também.
  • Auditoria: Registre quem logou de onde. Revise a lista de acesso periodicamente; remova chaves de quem não precisa mais.

Resumo

Use ED25519 ou RSA (4096); evite auth por senha. Guarde chaves privadas em agent ou vault; use chaves diferentes por ambiente. Rotacione chaves periodicamente e revogue acesso quando membros saírem.

Clientes que confiam na gente