我正在尝试使用 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