我无法理解如何使用 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
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
。