O ssh-keygen
comando gera .pub
arquivos que ele descreve como "arquivos de chave pública", mas eles são um formato totalmente diferente da maioria dos "arquivos de chave pública" que eu geralmente vi, que estão no formato PEM. Os ssh-keygen
arquivos -style ficam assim:
ssh-rsa AAAAB3NzaC1... user@host
... enquanto os arquivos PEM ficam assim:
-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----
Esses dois formatos são intercambiáveis ou estão executando um propósito fundamentalmente diferente? Me deparei com esse problema porque queria obter a impressão digital da chave RSA2 do meu arquivo de chave pública codificada em PEM, mas o método geralmente sugerido para fazê-lo ( ssh-keygen -l
) diz que meu arquivo codificado em PEM "não é um arquivo de chave pública".
A propósito, estou ciente dessa resposta , mas ela não cobre os arquivos .pub gerados por ssh-keygen
.
fonte
openssl rsa -in privatekey_rsa -pubout
, que na verdade é uma chave pública e não um certificado.Respostas:
Os pares de chaves OpenSSH não são PEM ou qualquer outro padrão x500. Novas versões do OpenSSH podem usar chaves X.509 PEM, mas essa é outra bola de cera separada do ssh-keygen e deve ser configurada explicitamente. Pelo que sei, nenhuma implementação importante do SSH usa exatamente os mesmos formatos de chave que qualquer outro.
Como observa o Zoredache , se você estiver usando algo diferente do OpenSSH (deus iuvo vos), então poderá ser quase qualquer coisa.
fonte
.pub
arquivo no meu servidor/etc/ssh/ssh_host_rsa_key.pub
e não usava nenhuma arquitetura de autoridade de certificação SSL. Quando corrissh-keygen -l
nesse arquivo, ele me deu a impressão digital da chave RSA2 do servidor.