Как формат ssh-keygen .pub работает с файлами .pem?

17

Команда 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.

Еж
источник
1
Что ж, открытый ключ SSH - это не то же самое, что сертификат в формате PEM. Вы смотрели на это? serverfault.com/questions/114301/…
cjc 28.12.12
2
Здесь важно учитывать, что вы, вероятно, смотрите на OpenSSH, а не на менее распространенный SSH.COM или другие реализации. Стандартный открытый ключ, закодированный в PEM, действительно действителен для некоторых менее распространенных реализаций. Я знаю, что окно VMS, к которому я подключаюсь, требует файл PEM.
Zoredache
@cjc, верно, это не сертификат, но он также не то же самое, что вы получаете, запустив openssl rsa -in privatekey_rsa -pubout, который на самом деле является открытым ключом, а не сертификатом.
Zoredache

Ответы:

8

Пары ключей OpenSSH не являются PEM или любым другим стандартом x500. В новых версиях OpenSSH могут использоваться PEM-ключи X.509, но это еще один шарик воска, отдельный от ssh-keygen, и его необходимо настроить явно. Насколько я знаю, ни одна крупная реализация SSH не использует те же форматы ключей, что и любые другие.

Как отмечает Zoredache , если вы используете что-то отличное от OpenSSH (deus iuvo vos), то это может быть чертовски близко ко всему.

Крис С
источник
1
Да, действительно, я перепутал SSH и SSL! Мой демон OpenSSH фактически использовал .pubфайл на моем сервере /etc/ssh/ssh_host_rsa_key.pubи не использовал архитектуру центра сертификации SSL. Когда я запустил ssh-keygen -lэтот файл, он дал мне отпечаток ключа RSA2 на сервере.
Jez