在 Linux 实例上添加或更换公有密钥 - Amazon Elastic Compute Cloud

在 Linux 实例上添加或更换公有密钥

如果您丢失了私有密钥,则无法访问任何使用该密钥对的实例。有关使用与您在启动时指定的密钥对不同的密钥对连接到实例的更多信息,请参阅我丢失了私有密钥

启动实例时,您可以指定密钥对。如果您在启动时指定密钥对,当您的实例首次启动时,公有密钥将放置在 ~/.ssh/authorized_keys 内的一个条目中的 Linux 实例中。

您可以更改用于访问实例默认系统账户的密钥对,方法是在实例上添加新的公有密钥,或者替换实例上的公有密钥(删除现有公有密钥并添加新的公有密钥)。您还可以从实例中删除所有公有密钥。要添加或替换密钥对,您必须能够连接到实例。

您可能会出于以下原因添加或替换密钥对:

  • 如果组织中有用户需要使用单独的密钥访问系统用户,您可以将此公有密钥添加到实例。

  • 如果某人有私有密钥的副本(.pem 文件),而您想要防止他们连接到实例(例如在他们已离开企业的情况下),您可以删除实例上的公有密钥,并将其替换为新的密钥。

  • 如果您从实例创建 Linux AMI,则公有密钥材料将从实例复制到 AMI。如果您从 AMI 启动实例,则新实例将包含来自原始实例的公有密钥。要防止拥有私有密钥的用户连接到新实例,您可以在创建 AMI 之前从原始实例中删除公有密钥。

使用以下程序修改默认用户的密钥对,例如 ec2-user。有关向实例添加用户的信息,请参阅实例上的操作系统的文档。

添加或替换密钥对
  1. 使用 Amazon EC2 控制台第三方工具创建新的密钥对。

  2. 从新密钥对检索公有密钥。有关更多信息,请参阅检索公有密钥材料

  3. 使用现有私有密钥连接到实例

  4. 使用您选择的文本编辑器,在实例上打开 .ssh/authorized_keys 文件。将新密钥对的公有密钥信息粘贴到现有公有密钥信息下。保存文件。

  5. 从实例分离,并测试能否使用新的私有密钥文件连接到实例。

  6. (可选) 如果您要替换现有密钥对,请连接到实例并从 .ssh/authorized_keys 文件中删除原始密钥对的公有密钥信息。

重要

如果您使用的是 Auto Scaling 组,请确保您要替换的密钥对未在启动模板或启动配置中指定。如果 Amazon EC2 Auto Scaling 检测到运行不正常的实例,它将启动替代实例。但是,如果找不到密钥对,则实例启动失败。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南中的启动模板

要从实例中删除公有密钥
  1. 连接到您的实例。

  2. 使用您选择的文本编辑器,在实例上打开 .ssh/authorized_keys 文件。删除公有密钥信息,然后保存该文件。

警告

从实例中删除所有公有密钥并断开与实例的连接后,您将无法再次连接到该实例,除非 AMI 提供了其他登录方式。