Openssl

如何將 SSH 公鑰從 PEM 轉換為 DER 格式?

  • November 25, 2017

我想將現有的公鑰(使用生成ssh-keygen)從PEM-format 轉換為DER-format

我試過:

openssl rsa -in ~/.ssh/id_rsa.pub -inform PEM -pubin -outform DER -out ~/.ssh/id_rsa.pub.der

不幸的是,這給出了以下錯誤:

unable to load Public Key
139946985690784:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: PUBLIC KEY

該文件~/.ssh/id_rsa.pub包含一個公鑰;cat ~/.ssh/id_rsa.pub給出:

ssh-rsa ...... user@machine

我究竟做錯了什麼?

OpenSSH 公鑰格式不同於 PEM 格式。您必須執行ssh-keygen才能轉換它。

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM >pubkey.pem

然後使用 . 將其轉換為 DER 格式openssl rsa

openssl rsa -RSAPublicKey_in -in pubkey.pem -inform PEM -outform DER -out ~/.ssh/id_rsa.pub.der -RSAPublicKey_out

請注意,您還必須指定-RSAPublicKey_in(not -pubin) 並將-RSAPublicKey_out其保留為 RSA 公鑰 (PKCS#1)。

引用自:https://unix.stackexchange.com/questions/220354