ssh security linux devops sysadmin

O Guia Definitivo para Gerenciamento e Segurança de Chaves SSH

Domine a geração e gerenciamento de chaves SSH. Aprenda sobre geradores de chaves SSH, formatos authorized_keys e known_hosts, e as melhores práticas para proteger seus servidores.

2026-04-12

O Guia Definitivo para Gerenciamento e Segurança de Chaves SSH

O Secure Shell (SSH) é o protocolo padrão para gerenciar servidores Linux. Embora senhas possam ser usadas, as chaves SSH fornecem uma alternativa significativamente mais segura e conveniente. No entanto, gerenciar essas chaves corretamente — da geração à rotatividade — é fundamental para manter uma postura de segurança robusta.

Este guia cobre tudo o que você precisa saber sobre chaves SSH, da geração básica às estratégias de gerenciamento avançadas.


1. Gerando Chaves Seguras

O primeiro passo na segurança do SSH é escolher o algoritmo certo e gerar um par de chaves forte.

Gerador de Chaves SSH Online

Embora um gerador de chaves SSH online seja conveniente para testes ou para criar rapidamente um par de chaves, você nunca deve usar uma ferramenta baseada na web para chaves de produção. Sempre gere suas chaves privadas localmente em sua máquina para garantir que elas nunca sejam transmitidas pela rede.

Construtor de Comando ssh-keygen

A ferramenta padrão para gerar chaves é o ssh-keygen. Um construtor de comando ssh-keygen pode ajudar você a escolher os melhores parâmetros. Hoje, você deve preferir o Ed25519 em vez do antigo RSA.

Comando recomendado para uma chave moderna e segura:

ssh-keygen -t ed25519 -C "[email protected]"

Se você precisar usar RSA por compatibilidade com sistemas antigos, garanta que ele tenha pelo menos 4096 bits:

ssh-keygen -t rsa -b 4096

2. Gerenciando Acesso: Formato Authorized_keys

O arquivo authorized_keys, normalmente localizado em ~/.ssh/, determina quais chaves públicas têm permissão para fazer login como um usuário específico.

Formato Authorized_keys

Uma única entrada no formato authorized_keys consiste em três partes:

  1. Opções (Opcional): Restringem o que a chave pode fazer (ex: from="1.2.3.4", no-agent-forwarding).
  2. Tipo de Chave: O algoritmo (ex: ssh-ed25519 ou ssh-rsa).
  3. Dados da Chave Pública: A chave real codificada em base64.
  4. Comentário (Opcional): Um rótulo para identificar a chave (geralmente um e-mail ou nome de host).

Exemplo com uma restrição:

from="192.168.1.0/24" ssh-ed25519 AAAAC3Nza... [email protected]

3. Verificando Servidores: Formato Known_hosts

Enquanto o authorized_keys é para autenticação do cliente, o arquivo known_hosts é para autenticação do servidor. Ele protege você contra ataques de Man-in-the-Middle (MITM).

Formato Known_hosts

O formato known_hosts mapeia o nome de host ou endereço IP de um servidor para sua chave de host pública. Quando você se conecta a um servidor pela primeira vez, o SSH solicita que você verifique a impressão digital (fingerprint) do host. Uma vez aceita, a chave é adicionada ao ~/.ssh/known_hosts. Se a chave do servidor mudar, o SSH avisará você e bloqueará a conexão.

Formato de uma entrada:

[hostname],[IP] ssh-ed25519 AAAAC3Nza...

4. Melhores Práticas para Segurança SSH

  • Use uma Passphrase: Sempre proteja sua chave privada com uma senha forte (passphrase). Mesmo que sua chave seja roubada, ela será inútil sem a senha.
  • Desative Autenticação por Senha: Assim que tiver as chaves SSH funcionando, desative os logins por senha no /etc/ssh/sshd_config definindo PasswordAuthentication no.
  • Faça Rotatividade de Chaves Regularmente: Como senhas, as chaves SSH devem ser alteradas periodicamente, especialmente quando funcionários saem da empresa.
  • Use o SSH Agent: Use o ssh-agent para armazenar suas chaves descriptografadas na memória, para que você não precise digitar sua senha a cada conexão.
  • Implemente um Servidor de Salto (Bastion Host): Em vez de expor todos os seus servidores à internet pública, use um único ponto de entrada protegido.

5. Resumo

Ao dominar os geradores de chaves SSH e entender os formatos authorized_keys e known_hosts, você pode reduzir significativamente o risco de acesso não autorizado à sua infraestrutura. Mudar de senhas para autenticação baseada em chaves é o passo mais importante para proteger qualquer ambiente baseado em Linux.