无法使用 openssl 加密私钥

Posted

技术标签:

【中文标题】无法使用 openssl 加密私钥【英文标题】:Unable to encrypt private key using openssl 【发布时间】:2019-08-15 18:20:47 【问题描述】:

我已经使用 openssh 生成了 Rsa 密钥对。我想使用 openssl 使用密码加密私钥。

我尝试使用 openssl 加密私钥,但无法这样做,因为它会给出错误消息。

使用以下命令生成 rsa 密钥对

ssh-keygen -t rsa -b 4096 -P ''-f ./Test-key

在下面的命令中使用 openssl 加密私钥。

rsa -des3 -in C:\Users\vkode200\Test-key -out C:\Users\vkode200\Test-key-encrypted -passout pass:"$pass"

我收到以下错误消息:

15764:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto\pem\pem_lib.c:686:Expecting: ANY PRIVATE KEY
error in rsa```

Below is the header of my generated private key
```-----BEGIN OPENSSH PRIVATE KEY-----```
I have no clue and i spent lot of time to figure out the issue, but no luck. 

【问题讨论】:

这里需要使用openssl吗? ssh-keygen 可以加密和解密 ssh 密钥。 是的,我需要使用openssl,因为其他系统使用openssl des3来解密。 【参考方案1】:

您可以通过传递-m PEM 来生成旧格式的密钥:

ssh-keygen -t rsa -b 4096 -P '' -f ./Test-key -m PEM

使用 openssl 命令应该可以正常工作。

如果您需要它们的新格式,您可以制作一个副本并将其转换为:

ssh-keygen -p -P '' -N '' -f ./Test-key -m PEM

【讨论】:

感谢 Yachoor 帮助我生成可以加密的 RSA 密钥。

以上是关于无法使用 openssl 加密私钥的主要内容,如果未能解决你的问题,请参考以下文章

OpenSSL,使用私钥解密

openssl rsa 可以用私钥加密 公钥解密吗

无法使用 openssl 获取私钥(无起始行:pem_lib.c:703:Expecting: ANY PRIVATE KEY)

PHP基于openssl实现的非对称加密操作

PHP基于openssl实现的非对称加密操作

为啥 openssl 无法读取 OSX 上由 openssh 创建的 ssh 私钥