

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

# 管理 Lightsail Linux 实例上的 SSH 密钥
<a name="amazon-lightsail-remove-ssh-key-on-instance"></a>

您可以使用密钥对与您的 Amazon Lightsail 实例建立安全连接。当你首次创建密钥对时，Lightsail 会在你的 Linux 或 Unix 实例上配置密钥对的公钥。密钥对的私有密钥用于在建立 SSH 连接时对实例进行身份验证。有关密钥的更多信息，请参阅[密钥对以及连接到实例](understanding-ssh-in-amazon-lightsail.md)。

在实例启动并运行后，您可以通过在实例上添加新的公有密钥，或者替换实例上的公有密钥（删除现有公有密钥并添加新的公有密钥），从而更改用于连接到实例的密钥对。您可能出于以下原因来执行该操作：
+ 如果组织中有用户需要使用单独的密钥对访问实例，您可以将此公有密钥添加到实例。
+ 如果您需要保护从使用已泄露密钥的实例的快照创建的新实例。
+ 如果有人拥有私有密钥的副本，而您想要防止他们连接到实例（例如他们已离开组织时），您可以删除实例上的公有密钥，并将其替换为新的公有密钥。

要添加或替换实例上的密钥，您必须能够连接到实例。如果您现有的私有密钥丢失，则可以使用基于 Lightsail 浏览器的 SSH 客户端连接到实例。有关更多信息，请参阅[连接到 Linux 或 Unix 实例](lightsail-how-to-connect-to-your-instance-virtual-private-server.md)。

**内容**
+ 步骤 1：[了解流程](#learn-about-the-process)
+ 第 2 步：[创建密钥对](#create-a-key-pair)
+ 第 3 步：[将公有密钥添加到实例](#add-public-key-to-instance)
+ 第 4 步：[使用新密钥对连接到实例](#connect-to-instance-new-key-pair)
+ 第 5 步：[从实例中删除现有的公有密钥](#delete-public-key-from-instance)

## 步骤 1：了解流程
<a name="learn-about-the-process"></a>

以下是在实例上添加和删除密钥的一般步骤。如果您想从实例中删除密钥但不添加新密钥，请参阅本指南后面的第 5 步：[从实例中删除现有的公有密钥](#delete-public-key-from-instance)。

1. **创建密钥对** – 要向您的实例添加新密钥，则必须首先创建新的密钥对。您可以使用 Lightsail 控制台创建自定义或默认密钥对，也可以在本地计算机上使用第三方工具（例如 ssh-keygen）创建自定义或默认密钥对。这两种方法都会生成一个由公有密钥和私有密钥组成的新密钥对。有关更多信息，请参阅本指南后面的第 2 步：[创建密钥对](#create-a-key-pair)。

1. **将公有密钥添加到实例** – 创建密钥对后，您可以使用 SSH 连接到实例并将密钥对的公有密钥添加到实例。有关更多信息，请参阅本指南后面的第 3 步：[将公有密钥添加到实例](#add-public-key-to-instance)。

1. **测试能否使用新的密钥对连接到实例** – 在实例上保存密钥对的公有密钥后，需要测试是否可以使用密钥对的私有密钥通过 SSH 连接到实例。有关更多信息，请参阅本指南后面的第 4 步：[使用新密钥对连接到实例](#connect-to-instance-new-key-pair)。

1. **从实例中删除旧公有密钥** – 使用新密钥成功连接到实例后，您可以从实例中删除旧公有密钥。完成此步骤以防止用户使用旧密钥对连接到实例。有关更多信息，请本指南后面的第 5 步：[从实例中删除现有的公有密钥](#delete-public-key-from-instance)。

## 第 2 步：创建密钥对
<a name="create-a-key-pair"></a>

完成以下步骤以使用 ssh-keygen 在本地电脑上创建一个密钥对。

1. 在本地电脑上打开命令提示符或终端。

1. 输入以下命令以创建密钥对。

   ```
   ssh-keygen -t rsa
   ```

1. 在电脑上指定用于保存密钥对的目录位置。

   例如：
   + 在 Windows 上：`C:\Users\{{<UserName>}}\.ssh\{{<KeyPairName>}}`
   + Linux、macOS 或 Unix：`/home/{{<UserName>}}/.ssh/{{<KeyPairName>}}`

   将 `{{<UserName>}}` 替换为您当前登录的用户名称，并将 `{{<KeyPairName>}}` 替换为新密钥对的名称。

   在以下示例中，我们指定了 Windows 电脑上的 `C:\Keys` 目录，并将新密钥命名为 `MyNewLightsailCustomKey`。  
![目录位置 C:\Keys](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-01.png)

1. 输入密钥的密码短语然后按 **Enter** 键。输入密码短语时您不会看到它。

   稍后在 SSH 客户端上配置私有密钥以连接到已配置公有密钥的实例时，您将需要此密码短语。  
![密码短语](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-02.png)

1. 再次输入密码短语以进行确认，然后按下 **Enter** 键。输入密码短语时您不会看到它。  
![密码短语](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-03.png)

1. 提示消息将会确认您的私有密钥和公有密钥已保存到指定目录中。  
![身份文件保存位置](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-04.png)

1. 打开公有密钥（.PUB）文件，然后复制文件中的文本。  
![复制到公有密钥文件的内容](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-05.png)

继续阅读本指南的下一部分，将您的新公钥添加到 Lightsail 实例。

## 第 3 步：将公有密钥添加到实例
<a name="add-public-key-to-instance"></a>

完成以下过程以将公有密钥添加到您的实例中。公有密钥内容保存在 Linux 和 Unix 实例上的 `~/.ssh/authorized_keys` 文件中。

1. 登录 [Lightsail 控制台](https://lightsail.aws.amazon.com/)。

1. 在 Lightsail 主页上选择 “**实例**” 部分。

1. 选择适用于要连接的实例的基于浏览器的 SSH 客户端图标。  
![选择基于浏览器的 SSH 客户端](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-06.png)

1. 连接成功后，输入以下命令，以使用您选择的文本编辑器编辑 *authorized\_keys* 文件。以下步骤将使用 Vim 进行演示。

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

   您应看到类似于以下示例的结果，其中显示了在实例上配置的当前公有密钥。在本例中，在 AWS 区域 中创建实例的 Lightsail 默认密钥是在该实例上配置的唯一公钥。  
![编辑授权密钥文件](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-07.png)

1. 在 Vim 编辑器中按 **I** 键以进入插入模式。

1. 在文件中的最后一个公有密钥之后输入换行符。

1. 粘贴您之前在本指南中复制的公有密钥文本（创建新密钥对之后）。您会看到类似于以下示例的结果：  
![粘贴公有密钥](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-08.png)

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

新的公有密钥现已添加到您的实例。继续按照本指南的下一部分操作，以使用新的公有密钥连接到实例。

## 第 4 步：使用新密钥对连接到实例
<a name="connect-to-instance-new-key-pair"></a>

要测试新密钥对，请断开与实例的连接，然后使用您之前在本指南中创建的私有密钥重新连接。有关更多信息，请参阅 [Amazon Lightsail 中的密钥对和连接实例](understanding-ssh-in-amazon-lightsail.md)。使用新密钥成功连接到实例后，您可以从实例中删除旧密钥。继续下一步骤以了解如何从实例中删除公有密钥。

## 第 5 步：从实例中删除现有的公有密钥
<a name="delete-public-key-from-instance"></a>

完成以下过程以从实例中删除公有密钥。这可以防止用户使用旧密钥对连接到实例。使用新密钥对成功连接到实例后，请执行此操作。

1. 使用 SSH 连接到实例。

1. 输入以下命令，以使用您选择的文本编辑器编辑 *authorized\_keys* 文件。以下步骤将使用 Vim 进行演示。

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

1. 在 Vim 编辑器中按字母 **I** 键以进入插入模式。

1. 删除包含要从实例中删除的公有密钥的文本行。  
![删除旧公有密钥](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-09.png)

   结果应与以下示例类似，仅显示新的公有密钥。  
![保留新的公有密钥](http://docs.aws.amazon.com/zh_cn/lightsail/latest/userguide/images/managing-keys-on-instance-10.png)

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

删除的密钥随即从您的实例中删除。您的实例将拒绝使用该密钥对的私有密钥进行连接。