如何生成用于 Windows Azure 上的 Linux 服务器的私钥/公钥对?

如何生成用于 Windows Azure 上的 Linux 服务器的私钥/公钥对?

下列的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

  1. 打开 PuttyGen
  2. 单击“加载”
  3. 加载你的私钥
  4. 转到 Conversions->Export OpenSSH 并导出你的私钥
  5. 将您的私钥复制到~/.ssh/id_dsa(或id_rsa)。
  6. 使用 ssh-keygen 创建 RFC 4716 版本的公钥

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub

  7. 将 RFC 4716 版本的公钥转换为 OpenSSH 格式:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub

更多信息:

http://linux-sxs.org/networking/openssh.putty.html

http://www.wellsi.com/sme/ssh/ssh.html

相关内容