Openssl
如何將 SSH 公鑰從 PEM 轉換為 DER 格式?
我想將現有的公鑰(使用生成
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)。