Eu tenho um arquivo PEM que adiciono a um ssh-agent em execução:
$ file query.pem
query.pem: PEM RSA private key
$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)
$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)
Como posso obter a impressão digital da chave (que vejo no ssh-agent) diretamente do arquivo? Eu sei que ssh-keygen -l -f some_key
funciona para chaves ssh "normais", mas não para arquivos PEM.
Se eu tentar ssh-keygen no arquivo .pem, obtenho:
$ ssh-keygen -l -f ./query.pem
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.
Essa chave começa com:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
ao contrário de uma chave privada "regular", que se parece com:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
não era possível ler um arquivo de chave privada, embora outras operações ssh-keygen
(e ssh*
) o façam. Mas quando ssh-keygen
gera uma chave, ele grava o arquivo de chave privada, por exemplo, id_rsa
e um arquivo de chave pública correspondente, com o .pub
acréscimo de id_rsa.pub
. Mais velho ssh-keygen -l
vai tentar adicionar .pub
ao nome do arquivo que você especificar e ler esse arquivo publickey.
.ssh/id_rsa
arquivo gerado pelo OpenSSH usando todos os padrões É um arquivo PEM. As chaves privadas são codificadas por PEM por padrão. De fato, você pode usar chaves RSA geradas com o OpenSSL diretamente com o OpenSSH.