使用 PEM 密钥对从 PuTTY SSH 到 AWS EC2 实例

Tiamo_T 发表于 2022/10/20 14:32:19 2022/10/20
【摘要】 在 AWS 中,当您启动任何 EC2 Linux 实例时,您应该为该特定实例选择一个密钥对。

在 AWS 中,当您启动任何 EC2 Linux 实例时,您应该为该特定实例选择一个密钥对。

AWS 密钥对将采用标准私有密钥格式,文件扩展名为 .pem

但是,如果您在 Windows 笔记本电脑上使用 PuTTY 登录 AWS 实例,就会遇到问题。

PuTTY 不支持 PEM 格式。PuTTY 只理解它自己的 PPK 格式。

PPK 代表腻子私钥。

因此,您应该将 .pem 文件转换为 .ppk 文件。

对于这种转换,putty 提供了一个名为 PuTTYgen 的工具。

1. 下载 AWS PEM 文件

在 AWS 中,当您首次创建要用于 EC2 实例的密钥对文件时,AWS 将允许您将 PEM 文件下载到本地计算机。将此 PEM 文件保存在您机器上的某个位置。

在此示例中,我拥有的 .pem 文件名为 thegeekstuff.pem,位于 C 驱动器下。

我们将把这个 tiamo.pem 文件转换为 tiamo.ppk 并使用 .ppk 通过 PuTTY 登录到 EC2 实例。

顺便说一句,对于所有 Linux AMI 映像,包括 CentOS、RedHat、Ubuntu、SuSE、Fedora、Amazon Linux 等,将 pem 转换为 ppk 用于 putty 的步骤完全相同。

2. 下载 PuTTYGen


如果您使用过 PuTTY MSI 安装程序,那么所有 PuTTY 实用程序都随附,包括 puttygen。

如果您已经只使用 putty.exe 作为独立的,那么您也可以下载独立的 puttygen.exe

通过双击启动 PuTTYgen。

PuTTYGen 是一个 RSA 和 DSA 密钥生成实用程序。但是,在我们的例子中,我们将使用它来将 pem 转换为 ppk 文件。

PuTTYGen 主屏幕将包含以下三个部分:

键部分:这将显示当前加载的键。即您当前正在处理的密钥。当您第一次启动 puttygen 时,此部分将显示“No Key”。

操作部分:此部分将显示您可以在 PuTTYGen 中执行的所有可能操作。以下是可用的操作:

  1. 生成 - 这将让您生成一个全新的公钥/私钥对
  2. 加载 - 如果您已经有一个现有的私钥,您可以通过在此处加载它来使用它
  3. 保存 – 生成新密钥或加载现有密钥后,您可以将公钥或私钥保存到本地计算机。最初保存按钮将被禁用,因为我们还没有加载密钥。

参数部分:在这里您将指定要生成的密钥的类型。您在这里有三个选项:SSH-1 (RSA)、SSH-2 (RSA)、SSH-2 DSA。您还可以为生成的密钥设置位数的值。默认情况下,类型为 SSH-2 (RSA) 和 2048 位。

为了我们将 PEM 转换为 PPK 的目的,将所有参数保留为默认值。即 SSH-2 (RSA) 和 2048 位。

3. 将 PEM 文件加载到 PuTTYGen 进行转换

在以下 PuTTYGen 主屏幕中,单击“加载”按钮,然后选择您的 AWS PEM 文件。

puttykeygen 主屏幕

请注意,当您单击“加载”时,在文件选择窗口中,默认情况下会显示“PuTTY Private Key Files (*.ppk)”作为选项。单击此下拉列表并选择“所有文件”,如下所示。之后,您可以浏览到 *.pem 文件所在的目录,然后加载它。

Puttykeygen 选择所有文件

加载 *.pem 文件后,您将收到一条弹出消息“成功导入外键(OpenSSH SSH-2 私钥)”。在此屏幕中单击“确定”。

4. 保存转换后的 PPK 私钥

现在我们已经加载了密钥,您将在顶部的“密钥”部分看到我们的密钥信息。这将显示密钥指纹、密钥注释。在这种情况下,密钥密码将为空,因为在此示例中我们的 AWS PEM 文件没有任何密码。

此外,在操作部分,我们将看到启用了保存按钮。

点击“保存私钥”按钮,保存我们转换后的 ppk 私钥。

PuTTYKeyGen 保存私钥

这将显示一条警告消息:“您确定要在没有密码保护的情况下保存此密钥吗?”。点击“是”。

现在,给这个文件起个名字。在我们的例子中,我将此转换后的文件命名为 tiamo.ppk

5.在PuTTY中使用PPK文件

现在,我们已经将 thegeekstuff.pem AWS PEM 文件转换为 thegeekstuff.ppk PuTTY 密钥文件,我们可以使用它来登录我们的 AWS EC2 实例。

为此,启动 putty,然后执行以下操作:

首先,在“主机名(或 IP 地址)”字段中,输入您的 AWS EC2 实例的 public-dns 或 ip。

其次,在“Saved Sessions”字段中,输入您希望在 putty 上为此 AWS-EC2-instance 指定的名称,然后单击“Save”以将此会话保存在您的 putty 列表中。

PuTTY 保存会话名称

第三,在左侧面板上,展开“Connections” -> 展开“SSH” -> 选择“Auth”。点击“浏览”,选择转换后的ppk文件作为“用于认证的私钥文件”,如下图所示。

PuTTY 选择 SSH 验证密钥文件

第四,在这个阶段你可以点击“打开”开始连接,但是你会丢失你刚刚输入的值。因此,在左侧面板上再次单击“会话”,然后再次单击“保存”。这将保存有关您提供给之前保存的 putty-session 的私钥的信息。

6. PEM 和 PPK 文件格式

转换文件后,您可以在文本编辑器中查看 PEM 和 PPK 文件的内容,您会看到内容看起来不同,因为它们的格式不同。

来自亚马逊 EC2 的 PEM 密钥文件

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAiwcGGeEzqHr0j/2yr95EHcKQwO7P
IL43rY5eNAbWqm5bwr3IgDmNC2aram/j9hVo2XIQzsCY
u3XvCd5SvM56tSb2h+OND6rxkM4pJhPRG/sMehndqsaj
0IkLxgn4xCXU9rQZbWEgryQDnONY6eOyg7vYykI0YdKE
..
..
Ho4cV+2gmeGopyZTj3QfHMKTghilJsMdBCGmYkip1VUT
JU2OSlE82l2k07FSfH8lvLNI7odj1ZUK2OqsD5Pca5hu
Uk7hWJuqSMsfKeU4AKAt7/WdtAUmmoA7eH9dKjXRg1sX
V6I76uLcRHRmPDJVwuUzf4ppX1sLFtAcIwro98ZBGudz
HO4cTkaSwOk6JJD2XcJ4+XgKzLimt/njP3e5y0gzVriy
-----END RSA PRIVATE KEY-----

PPK 文件格式。这是我们使用 PuTTYGen 工具转换的文件。这是在您的 PuTTY 上使用的密钥文件格式,以使用 SSH 协议登录到您的 Amazon AWS EC2 Linux 实例,如上所示。

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQCLBwYZ4TOoevSP
u7I5zV+GPx+ov76VDNQKGb89jDAgvjetjl40BtaqblvC
chDOwJim6MbEws4AXuLVyUq9O1Dw5qRVKsI2Xoi7de8J
zikmE9Eb+wx6Gd2qxqPuftJqbGjAzin0+voGlWH18Zeg
tBltYSCvJAOc41jp47KDu9jKQjRh0oSkDQ88l19zXgqp
jhxX7aCZ4ainJlOPdB8cwpOCGKUmwx0EIaZiSKnVVRMU
Private-Lines: 14
AAABAATq1K5pprgY0TmekYli5SngTdplF/PKfbUJKn6c
nj0qPTHoTTCt5T3V9Wzn5YWTg4eZtApptrhnfXPjcvC9
..
..
6PfGQRrnc4CXbW/vxw/K4w7RAp53zs0d3P18EE3i3xzu
Csy4prf54z93uctIM1a4skfy1GFiM3ujTOxskhU5OLXb
Private-MAC: 0827d5872ec564e75b370bc3eb6ddcc
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。