Mam plik PEM, który dodaję do działającego agenta ssh:
$ 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)
Jak mogę uzyskać odcisk palca klucza (który widzę w ssh-agent) bezpośrednio z pliku? Wiem, że ssh-keygen -l -f some_keydziała dla „normalnych” kluczy ssh, ale nie dla plików PEM.
Jeśli spróbuję ssh-keygen na pliku .pem, otrzymam:
$ 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.
Ten klucz zaczyna się od:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
w przeciwieństwie do „zwykłego” klucza prywatnego, który wygląda następująco:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -lpytaniu ) nie można odczytać pliku klucza prywatnego, chociaż robią to inne ssh-keygen(i ssh*) operacje. Ale gdy ssh-keygen generuje klucz, zapisuje zarówno plik klucza prywatnego np. Jak id_rsa i odpowiedni plik klucza publicznego z .pubdodanym np id_rsa.pub. Starsze ssh-keygen -l będzie spróbować dodać .pubdo nazwy pliku można określić i czytając ten plik PublicKey.
.ssh/id_rsaPlik generowany przez OpenSSH wykorzystując wszystkie domyślne to plik PEM. Klucze prywatne są domyślnie zakodowane w PEM. W rzeczywistości możesz używać kluczy RSA generowanych za pomocą OpenSSL bezpośrednio za pomocą OpenSSH.