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_key
dział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 -l
pytaniu ) 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 .pub
dodanym np id_rsa.pub
. Starsze ssh-keygen -l
będzie spróbować dodać .pub
do nazwy pliku można określić i czytając ten plik PublicKey.
.ssh/id_rsa
Plik 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.