

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 从 Lightsail 快照启动的安全 Amazon EC2 实例
<a name="amazon-lightsail-securing-linux-unix-amazon-ec2-instances"></a>

Amazon Lightsail 和亚马逊弹性计算云 (Amazon EC2) 使用公钥加密来加密和解密登录信息。公有密钥密码术使用公有密钥加密某个数据 (如一个密码)，然后收件人可以使用私有密钥解密数据。公有和私有密钥被称为密钥对。

当你将 Linux 或 Unix Lightsail 实例导出到 EC2 时，新的 EC2 实例将包含来自 Lightsail 服务的剩余密钥。作为最佳安全实践，您应删除实例中未使用的密钥。

为了提高从 Lightsail 快照创建的 EC2 中的 Linux 或 Unix 实例的安全性，我们建议您在创建实例后执行以下操作：
+ 如果你使用 Lightsail 默认密钥连接到 Lightsail 中的源实例，请移除并替换该密钥。如果您使用自己的密钥连接到您的实例，或者您在 Lightsail 控制台中为实例创建了密钥，则您的 Amazon EC2 实例中不存在 Lightsail 默认密钥。
+ 移除 Lightsail 系统密钥，也称为密钥。`lightsail_instance_ca.pub`Linux 和 Unix 实例上的此密钥允许基于 Lightsail 浏览器的 SSH 客户端进行连接。使用 Lightsail 控制台中的 “创建**亚马逊 EC2 实例” 页面或 Lightsail API 创建 EC2 实例**时，该`lightsail_instance_ca.pub`密钥会自动删除。

**内容**
+ [使用 Amazon EC2 创建私有密钥](#create-a-private-key-using-ec2)
+ [使用 Pu 创建公钥 TTYgen](#create-the-public-key-using-puttygen)
+ [连接到 Amazon EC2 中的 Linux 或 Unix 实例](#connect-to-your-linux-or-unix-instance-in-amazon-ec2)
+ [将公有密钥添加到您的实例并测试连接](#add-the-public-key-to-your-instance-and-test)
+ [移除 Lightsail 的默认密钥](#remove-the-lightsail-default-key)
+ [移除 Lightsail 系统密钥](#remove-the-lightsail-system-ssh-key)

## 使用 Amazon EC2 创建私有密钥
<a name="create-a-private-key-using-ec2"></a>

使用 Amazon EC2 控制台创建新的密钥对，您可以使用它来替换 Lightsail 的默认密钥对。

**使用 Amazon EC2 创建密钥对**

1. 登录 [Amazon EC2 控制台](https://console.aws.amazon.com/ec2/)。

1. 在左侧导航窗格中，选择 **Key Pairs (密钥对)**。

1. 选择 **Create key pair (创建密钥对)**。  
![Amazon EC2 控制台中的密钥对。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-ec2-console-key-pairs.png)

1. 在 **Key pair name（密钥对名称）**文本框中输入一个密钥名称，然后选择 **Create key pair（创建密钥对）**。有关在 Amazon EC2 中创建密钥对的更多信息，请参阅*《Amazon Elastic Compute Cloud 用户指南》*中的[为 Amazon EC2 实例创建密钥对](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html)。

   此时会自动下载新的私有密钥。记下该私有密钥的保存位置。您需要在本指南的以下*使用 Pu 创建公钥TTYgen部分中使用*它来创建公钥。  
![创建 Amazon EC2 控制台中的密钥对。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-ec2-console-create-key-pair.png)

## 使用 Pu 创建公钥 TTYgen
<a name="create-the-public-key-using-puttygen"></a>

Pu TTYgen 是 Putty 中包含的工具。使用 Pu TTYgen 生成公钥文本，您将在本指南的后面部分将其添加到您的实例中。

**注意**  
有关如何配置 PuTTY 以连接到您的 Linux 或 Unix 实例的更多信息，请参阅[连接从 Lightsail 快照创建的 Amazon EC2 Linux 或 Unix 实](amazon-lightsail-connecting-to-linux-unix-amazon-ec2-instances.md)例。

**使用 Pu 创建公钥 TTYgen**

1. 启动 Pu TTYgen。

   **例如，选择 **Windows 的 “开始**” 菜单，选择 “**所有程序**”，选择 “**Putty**”，然后选择 Pu。TTYgen**  
![PuTTY Key Generator。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/puttygen-key-generator.png)

1. 选择 **Load (打开)**。

   默认情况下，Pu 仅TTYgen 显示扩展名为.PPK 的文件。要找到您的 .PEM 文件，请选择相应选项以显示所有类型的文件。  
![将 Lightsail 私钥加载到 Putty 密钥生成器。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-putty-load-ec2-private-key.png)

1. 导航到本指南中之前创建的私有密钥的位置。选择私有密钥，然后选择 **Open (打开)**。

1. Pu TTYgen 确认成功导入密钥后，选择 **OK**。

1. 突出显示 **Public key (公有密钥)** 文本框的内容，然后按 **Ctrl\+C** (如果您使用的是 Windows) 或按 **Cmd\+C** (如果您使用的是 macOS)，将其复制到剪贴板。

   打开文本编辑器，例如记事本或，如果你使用的是 Windows TextEdit，请**按 Ctrl\+V** 将公钥文本粘贴到其中，如果你使用的是 macOS，则按 **Cmd\+V**。保存这个含有您的公有密钥文本的文件；稍后您需要在本指南中使用它。  
![PuTTY 密钥生成器。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-putty-key-generator.png)

1. 继续执行本指南的[连接到 Amazon EC2 中的 Linux 或 Unix 实例](#connect-to-your-linux-or-unix-instance-in-amazon-ec2)部分，以连接到您的 EC2 实例并添加公有密钥。

## 连接到 Amazon EC2 中的 Linux 或 Unix 实例
<a name="connect-to-your-linux-or-unix-instance-in-amazon-ec2"></a>

使用 SSH 连接到亚马逊 EC2 中的 Linux 或 Unix 实例，删除 Lightsail 的默认密钥和系统密钥。有关更多信息，请参阅[连接亚马逊 EC2 中根据亚马逊 Lightsail 快照创建的 Linux 或 Unix 实例](amazon-lightsail-connecting-to-linux-unix-amazon-ec2-instances.md)。

在 Amazon EC2 中连接到实例后，继续执行本指南的[将公有密钥添加到您的实例并测试连接](#add-the-public-key-to-your-instance-and-test)部分。

## 将公有密钥添加到您的实例并测试连接
<a name="add-the-public-key-to-your-instance-and-test"></a>

公有密钥内容保存在 Linux 和 Unix 实例上的 `~/.ssh/authorized_keys` 文件中。编辑文件以删除和替换 Amazon EC2 中的 Linux 或 Unix 实例中的 Lightsail 默认密钥。

**将公有密钥添加到您的实例并测试连接**

1. 建立与实例的 SSH 连接后，请输入以下命令以在 Vim 文本编辑器中编辑 `authorized_keys`。

   ```
   sudo vim ~/.ssh/authorized_keys
   ```
**注意**  
本指南将使用 Vim 演示这些步骤。但是，您可以使用任何文本编辑器执行这些步骤。  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-ssh-key.png)

1. 按 `I` 键以进入 Vim 编辑器的插入模式。

1. 在 Lightsail 默认密钥之后再输入一行。

1. 复制并粘贴您之前在本指南中保存的公有密钥文本。

   结果应该类似以下内容：  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-ssh-key-and-new-key.png)

1. 按 `ESC` 键，然后输入 `:wq!` 以保存您的编辑内容并退出 Vim。

1. 输入以下命令以重新启动 Open SSH 服务器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您应该会看到类似以下内容的结果：  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   新的公有密钥现已添加到您的实例。要测试新的密钥对，请断开与您的实例的连接。将 PuTTY 配置为使用你的新私钥而不是 Lightsail 的默认密钥。如果您能够使用新的密钥对成功连接到您的实例，请继续阅读本指南的[移除 Lightsail 默认密钥部分，移除 Lig](#remove-the-lightsail-default-key) htsail 默认密钥。

## 移除 Lightsail 的默认密钥
<a name="remove-the-lightsail-default-key"></a>

在向实例添加新的公钥并使用新的密钥对成功连接到实例后，请移除 Lightsail 默认密钥。

**移除 Lightsail 的默认密钥**

1. 建立与实例的 SSH 连接后，请输入以下命令以在 Vim 文本编辑器中编辑 `authorized_keys file`。

   ```
   sudo vim ~/.ssh/authorized_keys
   ```

1. 按 `I` 键以进入 Vim 编辑器的插入模式。

1. 删除以 `LightsailDefaultKeyPair` 结尾的行。这是 Lightsail 的默认密钥。  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-lightsail-default-delete-ssh-key.png)

1. 按 `ESC` 键，然后输入 `:wq!` 以保存您的编辑内容并退出 Vim。

1. 输入以下命令以重新启动 Open SSH 服务器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您应该会看到类似以下内容的结果：  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   Lightsail 默认密钥现已从您的实例中移除。现在，您的实例将拒绝使用 Lightsail 默认密钥的连接。继续阅读本指南的[移除 Lightsail 系统密钥](#remove-the-lightsail-system-ssh-key)部分，移除 Lightsail 系统密钥。

## 移除 Lightsail 系统密钥
<a name="remove-the-lightsail-system-ssh-key"></a>

Linux 和 Unix 实例上的 Lightsail 系统`lightsail_instance_ca.pub`密钥（也称为密钥）允许基于 Lightsail 浏览器的 SSH 客户端进行连接。执行以下步骤以从 Amazon EC2 中的 Linux 或 Unix 实例中删除 `lightsail_instance_ca.pub` 密钥，并编辑该 `/etc/ssh/sshd_config` 文件。该 `/etc/ssh/sshd_config` 文件定义了用于与您的实例建立 SSH 连接的参数。

**移除 Lightsail 系统密钥**

1. 在连接到实例的 SSH 终端窗口中，输入以下命令以删除 `lightsail_instance_ca.pub` 密钥：

   ```
   sudo rm –r /etc/ssh/lightsail_instance_ca.pub
   ```

1. 输入以下命令，以使用 Vim 文本编辑器编辑 `sshd_config` 文件。

   ```
   sudo vim /etc/ssh/sshd_config
   ```

1. 按 `I` 键以进入 Vim 编辑器的插入模式。

1. 如果该文件中出现以下文本，请将其删除：

   ```
   TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub
   ```

1. 按 `ESC` 键，然后输入 `:wq!` 以保存您的编辑内容并退出 Vim。

1. 输入以下命令以重新启动 Open SSH 服务器：

   ```
   sudo /etc/init.d/sshd restart
   ```

   您应该会看到类似以下内容的结果：  
![Lightsail 默认密钥。](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/amazon-lightsail-restarting-sshd.png)

   `lightsail_instance_ca.pub` 密钥现已从您的实例中删除。相关联的 `sshd_config` 文件已更新，以排除该密钥。