У мене є файл 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.