Команда ssh-keygen
генерирует .pub
файлы, которые она описывает как «файлы с открытым ключом», но они имеют совершенно иной формат, чем большинство «файлов с открытым ключом», которые я обычно видел, в формате PEM. В ssh-keygen
-Style файлы выглядеть следующим образом :
ssh-rsa AAAAB3NzaC1... user@host
... тогда как файлы PEM выглядят так:
-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----
Являются ли эти два формата взаимозаменяемыми или они выполняют принципиально разные цели? Я столкнулся с этой проблемой, потому что хотел получить отпечаток ключа RSA2 моего файла открытого ключа в кодировке PEM, но метод, обычно предлагаемый для этого ( ssh-keygen -l
), говорит, что мой файл в кодировке PEM «не является файлом открытого ключа».
Кстати, я знаю об этом ответе , но он не охватывает файлы .pub, сгенерированные ssh-keygen
.
openssl rsa -in privatekey_rsa -pubout
, который на самом деле является открытым ключом, а не сертификатом.Ответы:
Пары ключей OpenSSH не являются PEM или любым другим стандартом x500. В новых версиях OpenSSH могут использоваться PEM-ключи X.509, но это еще один шарик воска, отдельный от ssh-keygen, и его необходимо настроить явно. Насколько я знаю, ни одна крупная реализация SSH не использует те же форматы ключей, что и любые другие.
Как отмечает Zoredache , если вы используете что-то отличное от OpenSSH (deus iuvo vos), то это может быть чертовски близко ко всему.
источник
.pub
файл на моем сервере/etc/ssh/ssh_host_rsa_key.pub
и не использовал архитектуру центра сертификации SSL. Когда я запустилssh-keygen -l
этот файл, он дал мне отпечаток ключа RSA2 на сервере.