下列的Windows Azure 文档,我在 Ubuntu 机器上生成了一对私钥/公钥,使用如下的注释:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout myPrivateKey.key -out myCert.pem
当我在中打开私钥时puttygen
,显示以下错误:
无法加载私钥(无法识别的密钥类型)
生成的私钥openssl
看起来正确:
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG6w0xAQEFAASCBKcwggSjAgEsAoIBAQC6OEZ5ULe6F6u2
Cybhqqfqqh2ao9sd2tpqB+HGIoMMHrmnD3YegRgZJIddTQaWKdwaKrYul21YNt5y
...
P0RyfL9kDnX/XmIOM38FOoucGvO+Zozsbmgmvw6AUhE0sPhkZnlaodAU1OnfaWJz
KpBxkXulBaCJnC8w29dGKng=
-----END PRIVATE KEY-----
请注意,Azure 文档的评论(与上面相同的链接)报告说,该对应该使用适用于 Windows 的 OpenSSL 而不是openssl
在 Linux 上生成。这没有帮助,因为对于由适用于 Windows 的 OpenSSL 生成的私钥也会出现相同的错误。
我究竟做错了什么?
答案1
ssh-keys 和 puttygen 格式不一样,需要转换成 puttygen
- 打开 PuttyGen
- 单击“加载”
- 加载你的私钥
- 转到 Conversions->Export OpenSSH 并导出你的私钥
- 将您的私钥复制到~/.ssh/id_dsa(或id_rsa)。
使用 ssh-keygen 创建 RFC 4716 版本的公钥
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
将 RFC 4716 版本的公钥转换为 OpenSSH 格式:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
更多信息: