Amazon EC2 密钥对和 Linux 实例 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon EC2 密钥对和 Linux 实例

密钥对(由公有密钥和私有密钥组成)是一组安全凭证,可在连接到 Amazon EC2 实例时用来证明您的身份。Amazon EC2 在您的实例上存储公有密钥,您需要存储私有密钥。对于 Linux 实例,私有密钥允许您安全地 SSH 进入您的实例。拥有您的私有密钥的任何人都可以连接到您的实例,因此将您的私有密钥存储在一个安全位置非常重要。

启动实例时,系统会提示您输入密钥对。如果您计划使用 SSH 连接到实例,则必须指定密钥对。您可以选择现有密钥对或创建新的密钥对。当您的实例首次启动时,您在启动时指定的公有密钥将放置在 Linux 实例中的 ~/.ssh/authorized_keys 的条目中。在使用 SSH 连接到 Linux 实例时,要进行登录,您必须指定与公有密钥对应的私有密钥。有关连接到实例的更多信息,请参阅连接到您的 Linux 实例。有关密钥对和 Windows 实例的更多信息,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的 Amazon EC2 密钥对和 Windows 实例。

由于 Amazon EC2 不保存私有密钥的副本,因此,如果您丢失私有密钥,则无法恢复它。但是,仍可通过一种方法连接到丢失了密钥对的实例。有关更多信息,请参阅丢失私有密钥时连接到 Linux 实例

您可以使用 Amazon EC2 创建密钥对。您还可以使用第三方工具创建密钥对,然后将公有密钥导入 Amazon EC2。

Amazon EC2 使用的密钥是 ED25519 或 2048-bit SSH-2 RSA 密钥。

每个地区最多可拥有 5,000 个密钥对。

使用 Amazon EC2 创建密钥对

您可以使用以下方法之一创建密钥对。

Console

创建密钥对

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的 Network & Security 下,选择 Key Pairs

  3. 选择 Create key pair (创建密钥对)

  4. 对于 Name (名称),为模板输入一个描述性名称。Amazon EC2 将公有密钥与您指定的密钥名称相关联。密钥名称最多可包含 255 个 ASCII 字符。它不能包含前导空格或尾随空格。

  5. 对于 Key pair type(密钥对类型),选择 RSA 或者 ED25519。请注意,Windows 实例不支持 ED25519 密钥。

  6. 对于 Private key file format(私有密钥文件格式),选择要保存私有密钥的格式。要以可与 OpenSSH 一起使用的格式保存私有密钥,请选择 pem。要以可与 PuTTY 一起使用的格式保存私有密钥,请选择 ppk

    如果您在之前的步骤选择了 ED25519Private key file format(私有密钥文件格式)选项不会显示,私有密钥格式原定设置为 pem

  7. 要添加标签到公有密钥,请选择 Add tag(添加标签),然后输入标签的键和值。对每个标签重复此操作。

  8. 选择 Create key pair (创建密钥对)

  9. 您的浏览器会自动下载私有密钥文件。基本文件名是指定为密钥对名称的名称,文件扩展名由您选择的文件格式确定。将私有密钥文件保存在安全位置。

    重要

    这是您保存私有密钥文件的唯一机会。

  10. 如果您将在 macOS 或 Linux 计算机上使用 SSH 客户端连接到您的 Linux 实例,请使用以下命令设置您私有密钥文件的权限,以确保只有您可以读取它。

    chmod 400 my-key-pair.pem

    如果不设置这些权限,则无法使用此密钥对连接到实例。有关更多信息,请参阅错误:未保护的私有密钥文件

Amazon CLI

创建密钥对

  1. 按如下方式使用 create-key-pair 命令生成密钥对,并将私有密钥保存到 .pem 文件中。

    对于 --key-name,为公有密钥指定一个名称。该名称最多为 255 个 ASCII 字符。

    对于 --key-type,请指定 rsaed25519。如果您不包括 --key-type 参数,原定设置创建一个 rsa 密钥。请注意,Windows 实例不支持 ED25519 密钥。

    --query "KeyMaterial" 将私有密钥材料打印到输出中。

    --output text > my-key-pair.pem 将私有密钥材料保存在扩展名为 .pem 的文件中。私有密钥的名称可以与公有密钥的名称不同,但为了便于使用,请使用相同的名称。

    aws ec2 create-key-pair \ --key-name my-key-pair \ --key-type rsa \ --query "KeyMaterial" \ --output text > my-key-pair.pem
  2. 如果您将在 macOS 或 Linux 计算机上使用 SSH 客户端连接到您的 Linux 实例,请使用以下命令设置您私有密钥文件的权限,以确保只有您可以读取它。

    chmod 400 my-key-pair.pem

    如果不设置这些权限,则无法使用此密钥对连接到实例。有关更多信息,请参阅错误:未保护的私有密钥文件

PowerShell

创建密钥对

按如下所示使用 New-EC2KeyPair Amazon Tools for Windows PowerShell 命令生成密钥,并将其保存到 .pem 文件中。

对于 -KeyName,为公有密钥指定一个名称。该名称最多为 255 个 ASCII 字符。

对于 -KeyType,请指定 rsaed25519。如果您不包括 -KeyType 参数,原定设置创建一个 rsa 密钥。请注意,Windows 实例不支持 ED25519 密钥。

KeyMaterial 将私有密钥材料打印到输出中。

Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem 将私有密钥材料保存在扩展名为 .pem 的文件中。私有密钥的名称可以与公有密钥的名称不同,但为了便于使用,请使用相同的名称。

PS C:\> (New-EC2KeyPair -KeyName "my-key-pair" -KeyType "rsa").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem

使用第三方工具创建密钥对,并将公有密钥导入 Amazon EC2

如果不使用 Amazon EC2 创建密钥对,您可以使用第三方工具创建一个 RSA 或 ED25519 密钥对,然后将公有密钥导入 Amazon EC2。

密钥对的要求

  • 支持的类型:RSA 和 ED25519。Amazon EC2 不接受 DSA 密钥。

    • 请注意,Windows 实例不支持 ED25519 密钥。

  • 支持的格式:

    • OpenSSH 公有密钥格式(格式为 ~/.ssh/authorized_keys)。如果您在使用 EC2 Instance Connect API 时使用 SSH 进行连接,则也支持 SSH2 公司。

    • SSH 私有密钥文件格式必须为 PEM

    • (仅 RSA)Base64 编码的 DER 格式

    • (仅 RSA)SSH 公有密钥文件格式如 RFC 4716 所指定

  • 支持的长度:1024、2048 和 4096。如果您在使用 EC2 Instance Connect API 时使用 SSH 进行连接,则支持的长度为 2048 和 4096。

要使用第三方工具创建密钥对

  1. 使用您选择的第三方工具生成密钥对。例如,您可以使用 ssh-keygen(通过标准 OpenSSH 安装提供的工具)。或者,您可以使用 Java、Ruby、Python 和很多其他提供标准库的编程语言来创建 RSA 或 ED25519 密钥对。

    重要

    私有密钥必须采用 PEM 格式。例如,使用 ssh-keygen -m PEM 生成 PEM 格式的 OpenSSH 密钥。

  2. 将公有密钥保存至本地文件。例如:~/.ssh/my-key-pair.pub此文件的文件扩展名并不重要。

  3. 将私有密钥保存至扩展名为 .pem 的本地文件。例如 ~/.ssh/my-key-pair.pem

    重要

    将私有密钥文件保存在安全位置。当您启动实例时,您将需要提供公有密钥的名称;当您每次连接到实例时,您将需要提供相应的私有密钥。

创建密钥对后,使用以下方法之一将公有密钥导入到 Amazon EC2。

Console

导入公有密钥

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Key Pairs (密钥对)

  3. 选择 Import key pair (导入密钥对)

  4. 对于 Name(名称),为公有密钥输入一个描述性名称。该名称最多可包含 255 个 ASCII 字符。它不能包含前导空格或尾随空格。

    注意

    当您从 EC2 控制台连接到实例时,控制台会建议使用此名称作为私有密钥文件的名称。

  5. 选择 Browse (浏览) 以导航到您的公有密钥并选择它,或者将公有密钥的内容粘贴到 Public key contents (公有密钥内容) 字段中。

  6. 选择 Import key pair (导入密钥对)

  7. 验证您导入的公有密钥是否显示在密钥对列表中。

Amazon CLI

导入公有密钥

使用 import-key-pair Amazon CLI 命令。

验证密钥对是否已成功导入

使用 describe-key-pairs Amazon CLI 命令。

PowerShell

导入公有密钥

使用 Import-EC2KeyPair Amazon Tools for Windows PowerShell 命令。

验证密钥对是否已成功导入

使用 Get-EC2KeyPair Amazon Tools for Windows PowerShell 命令。

标记公有密钥

要对您使用 Amazon EC2 创建或导入 Amazon EC2 的公有密钥进行分类和管理,您可使用自定义元数据对其进行标记。有关标签的工作原理的更多信息,请参阅标记 Amazon EC2 资源

您可以使用以下方法之一查看、添加和删除标签。

Console

查看、添加或删除现有公有密钥的标签

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Key Pairs (密钥对)

  3. 选择一个公有密钥,然后依次选择 Actions (操作)Manage tags (管理标签)

  4. Manage tags (管理标签) 显示分配给公有密钥的所有标签。

    • 要添加标签,请选择 Add tag (添加标签),然后输入标签键和值。您最多可以为每个密钥添加 50 个标签。有关更多信息,请参阅标签限制

    • 要删除标签,请选择要删除的标签旁的 Remove (删除)

  5. 选择保存

Amazon CLI

查看公有密钥标签

使用 describe-tags Amazon CLI 命令。在以下示例中,您将描述所有公有密钥的标签。

$ aws ec2 describe-tags --filters "Name=resource-type,Values=key-pair"
{ "Tags": [ { "Key": "Environment", "ResourceId": "key-0123456789EXAMPLE", "ResourceType": "key-pair", "Value": "Production" }, { "Key": "Environment", "ResourceId": "key-9876543210EXAMPLE", "ResourceType": "key-pair", "Value": "Production" }] }

描述特定公有密钥的标签

使用 describe-key-pairs Amazon CLI 命令。

$ aws ec2 describe-key-pairs --key-pair-ids key-0123456789EXAMPLE
{ "KeyPairs": [ { "KeyName": "MyKeyPair", "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f", "KeyPairId": "key-0123456789EXAMPLE", "Tags": [ { "Key": "Environment", "Value": "Production" }] }] }

标记现有公有密钥

使用 create-tags Amazon CLI 命令。在以下示例中,使用 Key=Cost-CenterValue=CC-123 标记现有密钥。

$ aws ec2 create-tags --resources key-0123456789EXAMPLE --tags Key=Cost-Center,Value=CC-123

从公有密钥中删除标签

使用 delete-tags Amazon CLI 命令。有关示例,请参阅 Amazon CLI Command Reference 中的示例

PowerShell

查看公有密钥标签

使用 Get-EC2Tag 命令。

描述特定公有密钥的标签

使用 Get-EC2KeyPair 命令。

标记现有公有密钥

使用 New-EC2Tag 命令。

从公有密钥中删除标签

使用 Remove-EC2Tag 命令。

从私有密钥检索公有密钥

在本地 Linux 或 macOS 计算机上,可使用 ssh-keygen 命令检索密钥对的公有密钥。指定您已在其中下载私有密钥的路径(.pem 文件)。

ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem

该命令返回公有密钥,如以下示例所示。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE

如果该命令失败,请运行以下命令以确保更改对您的私有密钥对文件的权限,以便只有您才能查看该文件。

chmod 400 my-key-pair.pem

通过实例元数据检索公有密钥

您在启动实例时指定的公有密钥也可以通过实例元数据使用。要查看您在启动实例时指定的公有密钥,请从您的实例中使用以下命令。

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" –v http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

下面是一个示例输出。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

下面是一个示例输出。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair

如果您更改用于连接到实例的密钥对,我们不会更新实例元数据以显示新的公有密钥。相反,实例元数据将继续显示您在启动实例时指定的密钥对的公有密钥。有关更多信息,请参阅检索实例元数据

在实例上查找公有密钥

启动实例时,系统会提示您输入密钥对。如果您计划使用 SSH 连接到实例,则必须指定密钥对。当您的实例首次启动时,您在启动时指定的公有密钥的内容将放置在 Linux 实例中的 的条目中~/.ssh/authorized_keys

在实例上查找公有密钥

  1. 连接到您的实例。

  2. 在终端窗口中,使用您常用的文本编辑器(如 authorized_keysvim)打开 nano 文件。

    [ec2-user ~]$ nano ~/.ssh/authorized_keys

    authorized_keys 文件打开,显示公有密钥,后面是密钥对的名称。以下是名为 my-key-pair 的密钥对的示例条目。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair

确定启动时指定的密钥对

启动实例时,系统会提示您输入密钥对。如果您计划使用 SSH 连接到实例,则必须指定密钥对。

确定启动时指定的密钥对

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Instances (实例),然后选择您的实例。

  3. Details(详细信息)选项卡的 Instance details(实例详细信息)下,Key pair name(密钥对名称)字段显示您在启动实例时指定的密钥对名称。

注意

即使您更改实例上的公有密钥或添加密钥对,密钥对名称的值也不会更改。

验证您的密钥对的指纹

在 Amazon EC2 控制台的 Key Pairs(密钥对)页面,Fingerprint(指纹)列显示从您的密钥对生成的指纹。

您可以使用 Key Pairs(密钥对)页面上显示的指纹验证您本地机器上的私有密钥是否与 Amazon EC2 中存储的公有密钥匹配。在您已下载私有密钥文件的电脑上,从私有密钥文件生成指纹。输出应与控制台中显示的指纹匹配。

指纹如何计算

Amazon EC2 使用不同的哈希函数来计算 RSA 和 ED25519 密钥对的指纹。此外,对于 RSA 密钥对,Amazon EC2 使用不同的哈希函数以不同方式计算指纹,具体取决于密钥对是由 Amazon EC2 创建还是导入到 Amazon EC2 的。

下表所列的哈希函数用于计算由 Amazon EC2 创建以及导入到 Amazon EC2 的 RSA 和 ED25519 密钥对的指纹。

用于计算指纹的哈希函数
密钥对来源 RSA 密钥对 ED25519 密钥对
由 Amazon EC2 创建 SHA-1 SHA-256
导入到 Amazon EC2 MD5* SHA-256

* 如果您将公有的 RSA 密钥导入到 Amazon EC2,系统会使用 MD5 哈希函数计算指纹。无论您如何创建密钥对(例如,通过使用第三方工具或者从使用 Amazon EC2 创建的现有私有密钥生成新的公有密钥),都是如此。

在不同区域使用相同的密钥对时

如果您计划使用相同的密钥对连接到不同 Amazon 区域中的实例,必须将公有密钥导入到将在其中使用公有密钥的所有区域。如果您使用 Amazon EC2 创建密钥对,可以从 Amazon EC2 私有密钥生成公有密钥,这样就可以将公有密钥导入到其他区域。

请注意,如果您使用 Amazon EC2 创建 RSA 密钥对,然后从 Amazon EC2 私有密钥生成公有密钥,则导入的公有密钥的指纹将与原始公有密钥不同。这是因为使用 Amazon EC2 创建的原始 RSA 密钥的指纹是使用 SHA-1 哈希函数计算的,而导入的 RSA 密钥的指纹则使用 MD5 哈希函数计算。

对于 ED25519 密钥对,无论它们是由 Amazon EC2 创建还是导入到 Amazon EC2 的,指纹都将相同,因为两种情况下都使用相同的 SHA-256 哈希函数来计算指纹。

从私有密钥生成指纹

使用以下命令之一可从本地机器上的私有密钥生成指纹。

如果您使用的是 Windows 本地计算机,您可以使用 Windows Subsystem for Linux (WSL) 运行以下命令。按照 Windows 10 安装指南中的说明执行操作来安装 WSL 和 Linux 发行版。说明中的示例安装的是 Linux 的 Ubuntu 发行版,但您可以安装任意发行版。系统会提示您重新启动计算机以使更改生效。

  • 如果您使用 Amazon EC2 创建密钥对

    如以下示例中所示,使用 OpenSSL 工具生成指纹。

    对于 RSA 密钥对:

    $ openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c

    对于 ED25519 密钥对:

    $ ssh-keygen -l -f path_to_private_key
  • (仅限 RSA 密钥对)如果您将公有密钥导入到 Amazon EC2(无论您如何创建密钥对,例如,通过使用第三方工具或者从使用 Amazon EC2 创建的现有私有密钥生成新的公有密钥)

    如以下示例中所示,使用 OpenSSL 工具生成指纹。

    $ openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
  • 如果您使用 OpenSSH 7.8 或更高版本创建 OpenSSH 密钥对,并将公有密钥导入到 Amazon EC2

    如以下示例中所示,使用 ssh-keygen 生成指纹。

    对于 RSA 密钥对:

    $ ssh-keygen -ef path_to_private_key -m PEM | openssl rsa -RSAPublicKey_in -outform DER | openssl md5 -c

    对于 ED25519 密钥对:

    $ ssh-keygen -l -f path_to_private_key

为您的实例添加或替换密钥对

您可以更改用于访问实例默认系统账户的密钥对,方法是在实例上添加新的公有密钥,或者替换实例上的公有密钥(删除现有公有密钥并添加新的公有密钥)。您可能出于以下原因来执行该操作:

  • 如果组织中用户需要使用单独的密钥对访问系统用户账户,您可以向实例中添加一个公有密钥。

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

公有密钥位于实例上的 .ssh/authorized_keys 文件中。

要添加或替换密钥对,您必须能够连接到实例。如果您丢失了现有的私有密钥,或者在没有密钥对的情况下启动了实例,则您将无法连接到实例,因此无法添加或替换密钥对。如果您丢失了私有密钥,则可以检索它。有关更多信息,请参阅丢失私有密钥时连接到 Linux 实例。如果启动实例而没有密钥对,则将无法连接到此实例,除非您选择配置为允许用户以其他方式登录的 AMI。

注意

这些程序用于修改默认用户账户的密钥对,例如 ec2-user。有关向实例添加用户账户的信息,请参阅 在 Amazon Linux 实例上管理用户账户

添加或替换密钥对

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

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

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

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

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

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

注意

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

删除您的密钥对

使用以下方法删除密钥对时,您仅删除了创建导入密钥对时在 Amazon EC2 中保存的公有密钥。删除密钥对不会删除以前使用该密钥对启动的任何实例中的公有密钥,也不会删除您本地计算机上的私有密钥。您可以继续连接到使用随后被删除的密钥对启动的实例,只要您仍然拥有私有密钥 (.pem) 文件。

注意

要从实例中删除公有密钥,请参阅 从实例中删除公有密钥

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

您可以使用以下方法之一删除密钥对。

Console

删除您的密钥对

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Key Pairs (密钥对)

  3. 选择要删除的密钥对,然后选择 Delete (删除)

  4. 在确认字段中,输入 Delete,然后选择 Delete (删除)

Amazon CLI

删除您的密钥对

使用 delete-key-pair Amazon CLI 命令。

PowerShell

删除您的密钥对

使用 Remove-EC2KeyPair Amazon Tools for Windows PowerShell 命令。

从实例中删除公有密钥

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

从实例中删除公有密钥

  1. 连接到您的实例

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

警告

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