本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
保护从 Lightsail 快照启动的 Amazon EC2 实例
Amazon Lightsail 和 Amazon Elastic Compute Cloud(Amazon EC2)使用公有密钥密码系统来加密和解密登录信息。公有密钥密码术使用公有密钥加密某个数据 (如一个密码),然后收件人可以使用私有密钥解密数据。公有和私有密钥被称为密钥对。
当您将 Lightsail 中的 Linux 或 Unix 实例导出到 EC2 时,新的 EC2 实例将包含 Lightsail 服务中的残留密钥。作为最佳安全实践,您应删除实例中未使用的密钥。
要改善 EC2 中利用 Lightsail 快照创建的 Linux 或 Unix 实例的安全性,我们建议您在创建实例后执行下列操作:
-
如果您是使用 Lightsail 默认密钥连接到 Lightsail 中的源实例的,请删除并替换该密钥。如果您是使用自己的密钥连接到您的实例,或者您在 Lightsail 控制台中为您的实例创建了密钥,则 Lightsail 默认密钥不会显示在您的 Amazon EC2 实例中。
-
删除 Lightsail 系统密钥 (也称为
lightsail_instance_ca.pub密钥)。利用 Linux 和 Unix 实例上的此密钥,基于 Lightsail 浏览器的 SSH 客户端可以建立连接。在 Lightsail 控制台或 Lightsail API 中使用创建 Amazon EC2 实例页面创建 EC2 实例后,会自动删除lightsail_instance_ca.pub密钥。
内容
使用 Amazon EC2 创建私有密钥
使用 Amazon EC2 控制台创建新的密钥对,您可以使用该密钥对来替换 Lightsail 默认密钥对。
使用 Amazon EC2 创建密钥对
-
登录 Amazon EC2 控制台
。 -
在左侧导航窗格中,选择 Key Pairs (密钥对)。
-
选择 Create key pair (创建密钥对)。
-
在 Key pair name(密钥对名称)文本框中输入一个密钥名称,然后选择 Create key pair(创建密钥对)。有关在 Amazon EC2 中创建密钥对的更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的为 Amazon EC2 实例创建密钥对。
此时会自动下载新的私有密钥。记下该私有密钥的保存位置。您需要在本指南中下面的使用 PuTTYgen 创建公有密钥部分使用它来创建公有密钥。
使用 PuTTYgen 创建公有密钥
PuTTYgen 是一个包含在 PuTTY 中的工具。使用 PuTTYgen 生成稍后在本指南中添加到您的实例的公有密钥文本。
注意
有关如何配置 PuTTY 以连接到 Linux 或 Unix 实例的更多信息,请参阅连接到 Amazon EC2 中利用 Lightsail 快照创建的 Linux 或 Unix 实例。
使用 PuTTYgen 创建公有密钥
-
启动 PuTTYgen。
例如,依次选择 Windows 开始菜单、所有程序、PuTTY 和 PuTTYgen。
-
选择 Load (打开)。
默认情况下,PuTTYgen 仅显示扩展名为 .PPK 的文件。要找到您的 .PEM 文件,请选择相应选项以显示所有类型的文件。
-
导航到本指南中之前创建的私有密钥的位置。选择私有密钥,然后选择 Open (打开)。
-
PuTTYgen 确认您已成功导入该密钥后,您可以选择 OK (确定)。
-
突出显示 Public key (公有密钥) 文本框的内容,然后按 Ctrl+C (如果您使用的是 Windows) 或按 Cmd+C (如果您使用的是 macOS),将其复制到剪贴板。
打开文本编辑器 (例如记事本或 TextEdit),然后按 Ctrl+V (如果您使用的是 Windows) 或 Cmd+V (如果您使用的是 macOS),将公有密钥文本粘贴到其中。保存这个含有您的公有密钥文本的文件;稍后您需要在本指南中使用它。
-
继续执行本指南的连接到 Amazon EC2 中的 Linux 或 Unix 实例部分,以连接到您的 EC2 实例并添加公有密钥。
连接到 Amazon EC2 中的 Linux 或 Unix 实例
使用 SSH 连接到 Amazon EC2 中的 Linux 或 Unix 实例以移除 Lightsail 默认密钥和系统密钥。有关更多信息,请参阅连接到 Amazon EC2 中利用 Amazon Lightsail 快照创建的 Linux 或 Unix 实例。
在 Amazon EC2 中连接到实例后,继续执行本指南的将公有密钥添加到您的实例并测试连接部分。
将公有密钥添加到您的实例并测试连接
公有密钥内容保存在 Linux 和 Unix 实例上的 ~/.ssh/authorized_keys 文件中。编辑文件以删除并替换 Amazon EC2 中 Linux 或 Unix 实例中的 Lightsail 默认密钥。
将公有密钥添加到您的实例并测试连接
-
建立与实例的 SSH 连接后,请输入以下命令以在 Vim 文本编辑器中编辑
authorized_keys。sudo vim ~/.ssh/authorized_keys注意
本指南将使用 Vim 演示这些步骤。但是,您可以使用任何文本编辑器执行这些步骤。
-
按
I键以进入 Vim 编辑器的插入模式。 -
在 Lightsail 默认密钥之后再输入一行。
-
复制并粘贴您之前在本指南中保存的公有密钥文本。
结果应该类似以下内容:
-
按
ESC键,然后输入:wq!以保存您的编辑内容并退出 Vim。 -
输入以下命令以重新启动 Open SSH 服务器:
sudo /etc/init.d/sshd restart您应该会看到类似以下内容的结果:
新的公有密钥现已添加到您的实例。要测试新的密钥对,请断开与您的实例的连接。配置 PuTTY 以使用新的私有密钥而不是 Lightsail 默认密钥。如果您能够使用新的密钥对成功连接到您的实例,请继续执行本指南的删除 Lightsail 默认密钥部分,以删除 Lightsail 默认密钥。
删除 Lightsail 默认密钥
为您的实例添加新的公有密钥并使用新的密钥对成功连接到该实例后,删除 Lightsail 默认密钥。
删除 Lightsail 默认密钥
-
建立与实例的 SSH 连接后,请输入以下命令以在 Vim 文本编辑器中编辑
authorized_keys file。sudo vim ~/.ssh/authorized_keys -
按
I键以进入 Vim 编辑器的插入模式。 -
删除以
LightsailDefaultKeyPair结尾的行。这是 Lightsail 默认密钥。
-
按
ESC键,然后输入:wq!以保存您的编辑内容并退出 Vim。 -
输入以下命令以重新启动 Open SSH 服务器:
sudo /etc/init.d/sshd restart您应该会看到类似以下内容的结果:
Lightsail 默认密钥现已从您的实例中删除。您的实例现在将拒绝使用 Lightsail 默认密钥的连接。继续执行本指南的删除 Lightsail 系统密钥部分以删除 Lightsail 系统密钥。
删除 Lightsail 系统密钥
Lightsail 系统密钥在 Linux 和 Unix 实例上也被称为 lightsail_instance_ca.pub 密钥,利用它,基于 Lightsail 浏览器的 SSH 客户端可以建立连接。执行以下步骤以从 Amazon EC2 中的 Linux 或 Unix 实例中删除 lightsail_instance_ca.pub 密钥,并编辑该 /etc/ssh/sshd_config 文件。该 /etc/ssh/sshd_config 文件定义了用于与您的实例建立 SSH 连接的参数。
删除 Lightsail 系统密钥
-
在连接到实例的 SSH 终端窗口中,输入以下命令以删除
lightsail_instance_ca.pub密钥:sudo rm –r /etc/ssh/lightsail_instance_ca.pub -
输入以下命令,以使用 Vim 文本编辑器编辑
sshd_config文件。sudo vim /etc/ssh/sshd_config -
按
I键以进入 Vim 编辑器的插入模式。 -
如果该文件中出现以下文本,请将其删除:
TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub -
按
ESC键,然后输入:wq!以保存您的编辑内容并退出 Vim。 -
输入以下命令以重新启动 Open SSH 服务器:
sudo /etc/init.d/sshd restart您应该会看到类似以下内容的结果:
lightsail_instance_ca.pub密钥现已从您的实例中删除。相关联的sshd_config文件已更新,以排除该密钥。