2

У меня возникают проблемы с пониманием того, как использовать инструмент openssl для преобразования открытых ключей RSA.

Это прекрасно работает для закрытого ключа

$ openssl rsa -in id_rsa -pubout -outform DER > out
writing RSA key

Если бы у меня был только открытый ключ, я думал, что смогу сделать то же самое и просто добавить «-pubin». Но я получаю загадочную ошибку, утверждая, что ожидал открытого ключа ... но это то, что я дал ему.

$ openssl rsa -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key
140028314654360:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: PUBLIC KEY

В случае, если я должен был использовать pkey вместо этого, я попробовал это, и я все еще получаю эту ошибку, но без второй строки

$ openssl pkey -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key

Есть идеи?

1 ответ1

3

OpenSSL не понимает открытые ключи формата OpenSSH. (По большей части это просто совпадение, что оба они используют один и тот же формат закрытого ключа - фактически, недавний OpenSSH начал использовать другой, несовместимый.)

В недавнем OpenSSH вы можете использовать ssh-keygen -f id_rsa -e -m PEM для получения файла PKCS # 1.

Аналогично, ssh-keygen -f id_rsa -e -m PKCS8 даст вам ключ в формате PKCS # 8.

Вы также можете извлечь открытый ключ формата OpenSSL из личного файла, используя -in id_rsa -pubout .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .