Inspetor de chaves públicas SSH
Pega nas linhas que você já tem em authorized_keys ou known_hosts e mostra o que há de fato dentro delas. De cada chave informa o algoritmo, o tamanho real lido do próprio material criptográfico em vez de deduzido do nome da linha, a impressão digital SHA256 no formato que o OpenSSH atual imprime, a impressão MD5 separada por dois-pontos que servidores antigos e alguns consoles de nuvem ainda exibem, e o comentário e as opções que estiverem anexados. Isso costuma bastar para responder à pergunta que fez você abrir o arquivo: qual destas seis chaves é o notebook que você perdeu, e se esta chave de host confere com a impressão que a documentação publicou. Ele também apanha coisas invisíveis quando se passa os olhos por uma linha de chave. O nome do algoritmo é escrito duas vezes — como primeira palavra da linha e dentro do bloco base64 — e só o segundo é o que um servidor compara, de modo que uma chave reetiquetada por um copiar e colar parece perfeitamente normal e nunca autentica. O mesmo vale para um nome de curva ECDSA que não bate com o algoritmo sob o qual está arquivada, para um bloco truncado que mesmo assim decodifica, para uma chave RSA abaixo do piso de 2048 bits e para o ssh-dss, que o OpenSSH desativou por padrão na versão 7.0 e removeu por completo na 9.8. Se você colar uma chave privada por engano, ele se recusa a tocá-la e avisa. Tudo roda no navegador: nenhuma chave é enviada.
Como usar
- Cole uma ou mais linhas de chave pública: um arquivo authorized_keys ou known_hosts inteiro funciona, e linhas de comentário começadas por # são ignoradas.
- Compare a impressão SHA256 com a impressão de chave de host publicada, ou a MD5 se o sistema que você está conferindo ainda imprime esse formato.
- Use o tamanho e o algoritmo para achar as entradas que vale a pena rotacionar: qualquer ssh-dss e qualquer chave RSA abaixo de 2048 bits.
- Veja o comentário e as opções para descobrir a que máquina cada chave pertence antes de apagar uma linha.
- Tudo marcado em âmbar é uma chave que não vai se comportar como a linha sugere: leia o aviso antes de confiar na entrada.
Perguntas frequentes
- Por que minha impressão digital não bate com a que o ssh-keygen imprimiu?
- O mais provável é que você esteja comparando formatos de hash diferentes. Desde o OpenSSH 6.8 o padrão é SHA256 exibido como base64 sem preenchimento, no estilo SHA256:uNiVzt…; antes disso era MD5 em hexadecimal separado por dois-pontos. São impressões dos mesmíssimos bytes, então nenhuma é mais correta, mas não se parecem em nada. Esta ferramenta imprime as duas para você comparar com a que o outro lado estiver mostrando. Se as duas divergirem, as chaves são realmente diferentes: a impressão cobre apenas o bloco base64, de modo que mudar o comentário ou as opções não pode afetá-la.
- Qual a diferença entre o algoritmo da linha e o que está dentro da chave?
- Uma linha de chave pública do OpenSSH escreve o nome do algoritmo duas vezes: como primeira palavra e como primeiro campo com prefixo de comprimento dentro do bloco base64. Só a cópia interna faz parte da chave; a primeira palavra é um rótulo, e nada no fluxo de trabalho habitual confere se as duas batem. Assim, uma linha editada à mão, ou montada a partir de duas chaves por um copiar e colar ruim, pode dizer ssh-rsa carregando dentro uma chave Ed25519. No arquivo parece de todo comum, e simplesmente nunca autentica. Esta ferramenta compara as duas e avisa quando divergem.
- É seguro colar uma chave aqui?
- Uma chave pública, sim: ela é pública por definição, e esta página não a envia a lugar nenhum. Toda a análise e as duas impressões são calculadas no seu navegador, e você pode confirmar carregando a página e depois desconectando da rede; ela continua funcionando. Uma chave privada é outra história: nunca cole uma em página web alguma, nem nesta. Se a entrada começar com um cabeçalho PRIVATE KEY, a ferramenta se recusa a processá-la e avisa, em vez de analisá-la em silêncio.
- De que tamanho deve ser uma chave SSH?
- Para chaves novas, a recomendação usual é Ed25519: fixa em 256 bits, pequena, rápida e sem parâmetros que se possa errar. Se você precisa de RSA por causa de um servidor antigo, 2048 bits é o piso atual e 4096 a escolha comum; abaixo de 2048 tanto o OpenSSH quanto a maioria das autoridades certificadoras já recusam a chave. Atenção: tamanhos de RSA não são comparáveis a tamanhos de Ed25519. Uma chave Ed25519 de 256 bits equivale mais ou menos a uma RSA de 3072, porque os números medem coisas diferentes. ECDSA sobre nistp256 serve onde não houver Ed25519.
- Por que o ssh-dss é sinalizado se minha chave funciona?
- Porque ela funciona apenas onde algo antigo ainda a aceita. As chaves DSA no OpenSSH são fixas em 1024 bits, abaixo de qualquer recomendação atual, e a implementação é especialmente sensível a aleatoriedade ruim: um nonce repetido vaza a chave privada por inteiro. O OpenSSH desativou o ssh-dss por padrão na versão 7.0, e a 9.8 removeu o código todo, então qualquer servidor que você atualizar deixará de aceitar a chave sem aviso. Se ainda houver uma chave desse tipo num authorized_keys, vale substituí-la antes da atualização, não depois.
- Ele lê linhas de known_hosts e certificados?
- Linhas de known_hosts são tratadas: os padrões de host iniciais são separados da chave em vez de confundidos com ela, e isso inclui as entradas com hash que começam por |1| e marcadores como @cert-authority e @revoked. As cadeias de opções do authorized_keys — command="…", no-pty, from="…" — são separadas do mesmo jeito. Certificados do OpenSSH (os tipos *-cert-v01@openssh.com) são reconhecidos e têm a impressão calculada, mas o corpo não é decodificado, então você não verá aqui os principais nem a janela de validade.
Ferramentas relacionadas
Inspetor de chaves públicas PGP
Leia uma chave pública OpenPGP em armadura: impressão digital completa, ID da chave, algoritmo, tamanho, datas de criação e expiração e subchaves.
Conversor de JWK para PEM (e vice-versa)
Converta um JWK ou um JWKS inteiro em chaves públicas PEM e ao contrário, com a impressão digital RFC 7638 de cada chave — no navegador.
Inspetor de keystore PKCS#12
Abra um .p12 ou .pfx no navegador: MAC e cifras antes da senha e, depois dela, a cadeia de certificados, a chave privada e se elas combinam.
JSON Ordenar Chaves
Ordena as chaves de um objeto JSON alfabeticamente. Opcionalmente recursivo em objetos aninhados pra canonicalizar todo o documento.
Achatar / Desachatar JSON (notação de pontos)
Achate JSON aninhado em chaves com notação de pontos, ou reconstrua JSON aninhado a partir de chaves planas — delimitador configurável e reversível.
Testador de EditorConfig
Cole um .editorconfig e alguns caminhos de arquivo: veja as propriedades que cada arquivo resolve e qual seção, em qual linha, decidiu cada valor.