У мене є файл PEM, який я додаю до запущеного агента 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)
Як я можу отримати відбиток ключа (який я бачу в 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
не можна прочитати файл privatekey, хоча інші операції 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.