O que é uma chave pública SSH?

Uma chave pública SSH é uma das metades de um par de chaves criptográficas utilizado para autenticação segura através do protocolo SSH (Secure Shell). Ao gerar um par de chaves SSH, você obtém uma chave privada (mantida em segredo na sua máquina) e uma chave pública (compartilhada com os servidores aos quais deseja acessar). O servidor usa sua chave pública para verificar sua identidade sem transmitir uma senha.

As chaves públicas SSH são armazenadas como uma única linha de texto no formato OpenSSH, contendo três partes: o tipo de chave (como ssh-rsa ou ssh-ed25519), os dados da chave codificados em Base64 e um comentário opcional (geralmente user@hostname). Incorporadas nos dados Base64 estão informações binárias estruturadas, incluindo os parâmetros do algoritmo e o material criptográfico propriamente dito.

As impressões digitais (fingerprints) são hashes curtos e legíveis dos dados da chave. Elas facilitam a verificação e comparação de chaves sem precisar ler a string Base64 completa. Os dois formatos de fingerprint mais comuns são SHA-256 (o padrão moderno) e MD5 (o formato legado com pares hexadecimais separados por dois-pontos).

Descrição da ferramenta

Esta ferramenta analisa chaves públicas SSH no formato OpenSSH e extrai todos os metadados importantes. Cole sua chave pública e veja instantaneamente o tipo de chave, o algoritmo, o tamanho da chave em bits, o comentário e os fingerprints SHA-256 e MD5 — correspondendo à saída que você obteria com ssh-keygen -l.

Exemplos

Entrada:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

Saída:

Campo Valor
Tipo de chave ssh-ed25519
Algoritmo Ed25519
Tamanho da chave 256 bits
Comentário user@laptop
Fingerprint SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
Fingerprint MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

Funcionalidades

  • Suporta os tipos de chave RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA e Security Key (FIDO)
  • Calcula fingerprints SHA-256 e MD5 no formato padrão OpenSSH
  • Extrai o tamanho da chave em bits diretamente dos dados binários da chave
  • Valida a estrutura da chave, incluindo a integridade do Base64 e a consistência do tipo incorporado
  • Analisa o campo de comentário opcional da linha de chave pública

Como funciona

A ferramenta divide a entrada em três partes: tipo de chave, dados Base64 e comentário. Em seguida, decodifica os dados Base64 em binário e lê a estrutura interna usando o formato de comprimento prefixado do SSH, onde cada campo começa com um comprimento de 4 bytes em big-endian seguido pelos dados do campo. O tamanho da chave é determinado a partir dos parâmetros específicos do algoritmo — para RSA, é o comprimento em bits do módulo n; para DSA, é o primo p; e para chaves de curva elíptica, é derivado do nome da curva. Os fingerprints são calculados aplicando hash SHA-256 e MD5 aos dados binários brutos da chave.

Tipos de chave suportados

Identificador de tipo Algoritmo
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

Casos de uso

  • Verificação de fingerprints de chaves — Confirme que uma chave pública corresponde ao fingerprint esperado antes de adicioná-la ao authorized_keys ou a um serviço de hospedagem Git
  • Auditoria de acesso ao servidor — Identifique rapidamente o algoritmo e o tamanho das chaves no seu arquivo authorized_keys para encontrar chaves fracas ou desatualizadas
  • Depuração de problemas SSH — Verifique se uma chave está no formato correto, usa o algoritmo esperado e possui uma estrutura válida

Perguntas frequentes

Onde encontro minha chave pública SSH? Na maioria dos sistemas, ela está armazenada em ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub ou em um caminho semelhante, dependendo do algoritmo. Você também pode executar ssh-add -L para listar as chaves carregadas no seu agente SSH.

É seguro compartilhar minha chave pública? Sim. A chave pública foi projetada para ser compartilhada. Ela não pode ser usada para derivar a chave privada nem para autenticar em seu nome.

Por que os fingerprints SHA-256 e MD5 têm aparências diferentes? Os fingerprints SHA-256 são codificados em Base64 e prefixados com SHA256:, enquanto os fingerprints MD5 usam pares hexadecimais separados por dois-pontos prefixados com MD5:. SHA-256 é o padrão nas versões modernas do OpenSSH.