У меня есть PEM-файл, который я добавляю в работающий ssh-agent:
$ 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)
Как я могу получить отпечаток ключа (который я вижу в ssh-agent) прямо из файла? Я знаю, ssh-keygen -l -f some_key
работает для "нормальных" ключей SSH, но не для файлов PEM.
Если я попробую ssh-keygen для файла .pem, я получу:
$ 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.
Этот ключ начинается с:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
в отличие от «обычного» закрытого ключа, который выглядит так:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
не может прочитать файл приватного ключа, хотя другие операции ssh-keygen
(и ssh*
) делают. Но когда ssh-keygen
генерирует ключ, он записывает как файл privatekey, например, так id_rsa
и соответствующий файл publickey с .pub
добавлением, например id_rsa.pub
. Позднее ssh-keygen -l
будет пытаться добавлять .pub
к названию файла и чтение этого файла ОткрытыйКлюч.
.ssh/id_rsa
Файл , созданный с помощью OpenSSH с использованием всех значений по умолчанию ЯВЛЯЕТСЯ PEM файл. Закрытые ключи по умолчанию закодированы в PEM. Фактически вы можете использовать ключи RSA, которые вы генерируете с OpenSSL напрямую с OpenSSH.