生成 ssh 密钥时未创建 PKCS1 格式的密钥

生成 ssh 密钥时未创建 PKCS1 格式的密钥

我正在尝试使用 ssh-keygen 创建公钥/私钥对。我需要密钥采用 PKCS1 格式,以便显示“是 RSA 私钥”。无论我怎么尝试,它似乎只能以 PKCS8 格式创建。您觉得问题可能出在哪里?

我正在运行以下命令:

 ssh-keygen -m PEM -t rsa -b 2048

据我所知,指定 -m PEM 格式应该会以 PKCS1 格式创建它。我希望密钥的标题能够说明

-----BEGIN RSA PRIVATE KEY-----

但它却说

-----BEGIN PRIVATE KEY-----

这让我相信它是 PKCS8 格式。有什么想法可以解决这个问题吗?我使用的是 openssh 版本 7.4p1。

答案1

停止使用该选项-m PEM。只需正常生成密钥即可。

答案2

确保您的ssh-keygen支持-m并尝试使用小写格式值,例如-m pem

例如,

$ ssh-keygen -b 2048 -t rsa -m pem -f /tmp/pem_rsa -N "" 2>/dev/null 1>/dev/null && head -n2 /tmp/pem_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA1WLQy9mF43mVJTaTJq8e/aGs5HNMxHYx2wFra5tdMfEk3Li7

$ ssh-keygen -b 2048 -t rsa -m pkcs8 -f /tmp/pkcs8_rsa -N "" 2>/dev/null 1>/dev/null && head -n2 /tmp/pkcs8_rsa
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDLX2+JYL4Rf+JT

相关内容