无法使用带有 RSA-PSS 选项的 openssl genpkey 实用程序生成正确的 RSA 密钥

无法使用带有 RSA-PSS 选项的 openssl genpkey 实用程序生成正确的 RSA 密钥

我正在尝试在 Linux 上使用 openssl 创建 RSA 密钥,然后将其转换为 PuTTY 格式,以便我也可以在 Windows PC 上使用它。

openssl genpkey -algorithm RSA-PSS -out myKey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048

密钥已生成。我cat看了一下,看起来还可以

现在将其转换为 PuTTY 格式:

puttygen myKey.pem -o myKey.ppk -O private

我收到以下错误:

puttygen: error loading 'myKey.pem': unrecognised key type

我尝试使用以下命令检查密钥:

openssl rsa -in myKey.pem -text

我收到以下错误:

140527068488128:error:0607907F:digital envelope routines:EVP_PKEY_get0_RSA:expecting an rsa key:../crypto/evp/p_lib.c:464:

知道发生了什么事吗?

答案1

您使用了错误的算法:RSA-PSS 而不是 RSA。

此命令将生成预期的密钥:

openssl genpkey -algorithm RSA -out myKey.pem -outform PEM -pkeyopt rsa_keygen_bits:2048

请注意,唯一的更改是替换RSA-PSSRSA


对于给定的私钥,您可以检索有关它的信息,包括所使用的算法,如下所示:

openssl asn1parse -in myKey.pem

错误的算法(对于 SSH 使用)将具有与此类似的行:

    9:d=2  hl=2 l=   9 prim: OBJECT            :rsassaPss

而 RSA 算法将具有与此类似的内容:

    9:d=2  hl=2 l=   9 prim: OBJECT            :rsaEncryption

相关内容