我想将现有的公钥(使用 生成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
我究竟做错了什么?
答案1
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
(不是-pubin
)并将-RSAPublicKey_out
其保留为 RSA 公钥 (PKCS#1)。