排查实例的连接问题。 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

排查实例的连接问题。

以下信息可以帮助您解决在连接到实例时出现的问题。有关 Windows 实例的更多帮助信息,请参阅Amazon EC2 用户指南(适用于 Windows 实例)中的排除 Windows 实例的故障

连接问题的常见原因

在开始进行故障排除时,我们建议您检查在连接到实例时出现的问题的一些常见原因。

验证实例的用户名

您可以使用用户账户的用户名或用于启动实例的 AMI 的默认用户名连接到您的实例。

  • 获取用户账户的用户名。

    有关如何创建用户账户的更多信息,请参阅在 Amazon Linux 实例上管理用户账户

  • 获取用于启动实例的 AMI 的默认用户名称:

    • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user

    • 对于 CentOS AMI,用户名称是 centos

    • 对于 Debian AMI,用户名称是 admin

    • 对于 Fedora AMI,用户名为 ec2-userfedora

    • 对于 RHEL AMI,用户名称是 ec2-userroot

    • 对于 SUSE AMI,用户名称是 ec2-userroot

    • 对于 Ubuntu AMI,用户名称是 ubuntu

    • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

验证安全组规则是否允许流量

确保安全组规则允许来自相应端口上的公有 IPv4 地址的入站流量。有关验证步骤,请参阅连接到您的实例时出错:连接超时

验证实例是否准备就绪

启动实例后,需要几分钟准备好实例,以便您能连接到实例。检查实例以确保它正在运行并通过了状态检查。

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 请验证以下内容:

    1. Instance state (实例状态) 列中,验证您的实例是否处于 running 状态。

    2. Status check (状态检查) 列中,验证您的实例是否已通过两项状态检查。

验证有关连接到您的实例的常规先决条件

有关更多信息,请参阅 连接到您的实例的常规先决条件

连接到您的实例时出错:连接超时

如果在连接到您的实例时看到以下错误消息:Network error: Connection timed outError connecting to [instance], reason: -> Connection timed out: connect,请尝试以下选项:

检查您的安全组规则。

您的某个安全组规则应该允许适当的端口传输来自公有 IPv4 地址的入站流量。

新控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 在控制台页面底部的 Security (安全) 选项卡上的 Inbound rules (入站规则) 下,检查对所选实例生效的规则列表。

    • 对于 Linux 实例:验证是否有允许流量从您的计算机到端口 22 (SSH) 的规则。

    • 对于 Windows 实例:验证是否有允许流量从您的计算机到端口 3389 (RDP) 的规则。

  4. 每次重新启动实例时,将分配新的 IP 地址(和主机名)。如果您的安全组具有允许来自单个 IP 地址的入站流量的规则,则当您的计算机在企业网络上,或当您通过 Internet 服务提供商 (ISP) 进行连接时,此地址可能不是静态的。请改为指定客户端计算机使用的 IP 地址的范围。如果您的安全组没有上一步中所述的允许入站流量的规则,请向您的安全组添加一个规则。有关更多信息,请参阅 为您的 Linux 实例授权入站流量

    有关安全组规则的更多信息,请参阅Amazon VPC 用户指南中的安全组规则

旧控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. 在屏幕底部的 Description (描述) 选项卡中,在 Security groups (安全组) 旁,选择 view inbound rules (查看入站规则) 以显示对所选实例生效的规则列表。

  4. 对于 Linux 实例:当您选择 view inbound rules (查看入站规则) 时,将会出现一个窗口,其中显示了允许流量到哪些端口。验证是否有允许流量从您的计算机到端口 22 (SSH) 的规则。

    对于 Windows 实例:当您选择 view inbound rules (查看入站规则) 时,将会出现一个窗口,其中显示了允许流量到哪些端口。验证是否有允许流量从您的计算机到端口 3389 (RDP) 的规则。

    每次重新启动实例时,将分配新的 IP 地址(和主机名)。如果您的安全组具有允许来自单个 IP 地址的入站流量的规则,则当您的计算机在企业网络上,或当您通过 Internet 服务提供商 (ISP) 进行连接时,此地址可能不是静态的。请改为指定客户端计算机使用的 IP 地址的范围。如果您的安全组没有上一步中所述的允许入站流量的规则,请向您的安全组添加一个规则。有关更多信息,请参阅 为您的 Linux 实例授权入站流量

    有关安全组规则的更多信息,请参阅Amazon VPC 用户指南中的安全组规则

查看子网的路由表。

您需要使用某个路由,以将发往 VPC 外部的所有流量发送到 VPC 的 Internet 网关。

新控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. Networking (联网) 选项卡上,记下 VPC IDSubnet ID (子网 ID) 的值。

  4. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  5. 在导航窗格中,选择 Internet Gateways。验证是否有 Internet 网关附加到您的 VPC。否则,请选择 Create internet gateway (创建 Internet 网关),为 Internet 网关输入名称,然后选择 Create internet gateway (创建 Internet 网关)。然后,对于您创建的 Internet 网关,依次选择 Actions (操作)Attach to VPC (附加到 VPC),选择您的 VPC,然后选择 Attach internet gateway (附加 Internet 网关) 将其附加到您的 VPC。

  6. 在导航窗格中,选择 Subnets,然后选择您的子网。

  7. Route Table (路由表) 选项卡上,验证 0.0.0.0/0 的路由是否为目的地以及您的 VPC 的 Internet 网关是否为目标。如果您使用实例的 IPv6 地址连接到实例,请检查是否有一个路由可以将所有 IPv6 流量 (::/0) 指向 Internet 网关。否则请执行以下操作:

    1. 选择路由表的 ID (rtb-xxxxxxxx) 以导航到路由表。

    2. Routes (路由) 选项卡上,选择 Edit routes (编辑路由)。选择 Add route (添加路由),将 0.0.0.0/0 用作目的地并将 Internet 网关用作目标。对于 IPv6,选择 Add route (添加路由),将 ::/0 用作目的地并将 Internet 网关用作目标。

    3. 选择 Save routes (保存路由)

旧控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. Description 选项卡中,记下 VPC IDSubnet ID 的值。

  4. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  5. 在导航窗格中,选择 Internet Gateways。验证是否有 Internet 网关附加到您的 VPC。否则,选择 Create Internet Gateway 以创建 Internet 网关。选择 Internet 网关,然后选择 Attach to VPC 并按照说明将其附加到您的 VPC。

  6. 在导航窗格中,选择 Subnets,然后选择您的子网。

  7. Route Table 选项卡上,验证 0.0.0.0/0 的路由是否为目的地以及您的 VPC 的 Internet 网关是否为目标。如果您使用实例的 IPv6 地址连接到实例,请检查是否有一个路由可以将所有 IPv6 流量 (::/0) 指向 Internet 网关。否则请执行以下操作:

    1. 选择路由表的 ID (rtb-xxxxxxxx) 以导航到路由表。

    2. Routes (路由) 选项卡上,选择 Edit routes (编辑路由)。选择 Add route (添加路由),将 0.0.0.0/0 用作目的地并将 Internet 网关用作目标。对于 IPv6,选择 Add route (添加路由),将 ::/0 用作目的地并将 Internet 网关用作目标。

    3. 选择 Save routes (保存路由)

检查子网的网络访问控制列表 (ACL)。

该网络 ACL 必须允许适当的端口传输来自本地 IP 地址的入站和出站流量。默认网络 ACL 允许所有入站和出站流量。

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 Subnets,然后选择您的子网。

  3. Description (描述) 选项卡上,找到 Network ACL (网络 ACL),然后选择其 ID (acl-xxxxxxxx)。

  4. 选择网络 ACL。对于 Inbound Rules,验证规则是否允许来自您的计算机的流量。如果不允许,请删除或修改阻止来自您的计算机的流量的规则。

  5. 对于 Outbound Rules,验证规则是否允许到您的计算机的流量。如果不允许,请删除或修改阻止到您的计算机的流量的规则。

如果您的计算机在企业网络上

请询问网络管理员内部防火墙是否允许端口 22 (对于 Linux 实例) 或端口 3389 (对于 Windows 实例) 上来自您的计算机的入站和出站流量。

如果您的计算机有防火墙,请验证其是否允许端口 22 (对于 Linux 实例) 或端口 3389 (对于 Windows 实例) 上来自您的计算机的入站和出站流量。

检查您的实例是否具有公有 IPv4 地址。

如果没有,您可以将弹性 IP 地址与您的实例关联。有关更多信息,请参阅 弹性 IP 地址

检查实例上的 CPU 负载;服务器可能已超过负载。

AWS 自动提供数据,例如 Amazon CloudWatch 指标和实例状态,您可以使用这些数据查看实例上 CPU 的负载情况;如有必要,还可以调整负载的处理方式。有关更多信息,请参阅 使用 CloudWatch 监控您的实例

  • 如果您的负载是可变的,您可以使用 Auto ScalingElastic Load Balancing 自动增加或减少实例。

  • 如果您的负载呈稳定增长的态势,您可以迁移到更大的实例类型。有关更多信息,请参阅 更改实例类型

要使用 IPv6 地址连接实例,请检查以下各项:

  • 您的子网必须与一个路由表关联,此表中具有一个将 IPv6 流量 (::/0) 指向 Internet 网关的路由。

  • 您的安全组规则必须允许适当端口 (Linux 的端口 22 和 Windows 的端口 3389) 传输来自本地 IPv6 地址的入站流量。

  • 您的网络 ACL 规则必须允许入站和出站 IPv6 流量。

  • 如果您从旧版 AMI 启动实例,则其可能未针对 DHCPv6 进行配置(IPv6 地址不会在网络接口上自动识别)。有关更多信息,请参阅Amazon VPC 用户指南中的在实例中配置 IPv6

  • 您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。

Error: unable to load key ...(错误:无法加载密钥...)Expecting: ANY PRIVATE KEY(需要:任何私有密钥)

如果您尝试连接到您的实例并收到错误消息 unable to load key ... Expecting: ANY PRIVATE KEY,则说明未正确配置用于存储私有密钥的文件。如果私有密钥文件以 .pem 为结尾,则它可能仍未正确配置。未正确配置私有密钥文件的一个可能原因是缺少证书。

如果未正确配置私有密钥文件,请按照下列步骤解决该错误

  1. 创建新的密钥对。有关更多信息,请参阅 选项 1:使用 Amazon EC2 创建密钥对

  2. 将新密钥对添加到您的实例。有关更多信息,请参阅 丢失私有密钥时连接到 Linux 实例

  3. 使用新的密钥对连接到实例。

错误:服务器无法识别用户密钥

如果您使用 SSH 连接到实例

  • 请在连接时使用 ssh -vvv 获得三倍的详细调试信息:

    ssh -vvv -i path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com.cn

    下列样本输出演示了如果您尝试使用服务器无法识别的密钥连接实例时您可能会看到的信息:

    open/ANT/myusername/.ssh/known_hosts). debug2: bits set: 504/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: boguspem.pem ((nil)) debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: boguspem.pem debug1: read PEM private key done: type RSA debug3: sign_and_send_pubkey: RSA 9c:4c:bc:0c:d0:5c:c7:92:6c:8e:9b:16:e4:43:d8:b2 debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey).

如果您使用 PuTTY 连接到实例

  • 验证私有密钥 (.pem) 文件是否已转换为 PuTTY 可识别的格式 (.ppk)。有关转换您的私有密钥的更多信息,请参阅 使用 PuTTY 从 Windows 连接到 Linux 实例

    注意

    在 PuTTYgen 中,加载私有密钥文件并选择 Save Private Key (保存私有密钥) 而不是 Generate (生成)

  • 验证您在连接时是否对为 AMI 使用了正确的用户名称。在 PuTTY Configuration (PuTTY 配置) 窗口的 Host name (主机名) 框中输入用户名。

    • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user

    • 对于 CentOS AMI,用户名称是 centos

    • 对于 Debian AMI,用户名称是 admin

    • 对于 Fedora AMI,用户名为 ec2-userfedora

    • 对于 RHEL AMI,用户名称是 ec2-userroot

    • 对于 SUSE AMI,用户名称是 ec2-userroot

    • 对于 Ubuntu AMI,用户名称是 ubuntu

    • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

  • 验证您的入站安全组规则允许入站流量进入合适的端口。有关更多信息,请参阅授权网络访问您的实例

错误:权限被拒绝或 [实例] 端口 22 关闭了连接

如果您使用 SSH 连接到实例并出现任何以下错误:Host key not found in [directory]Permission denied (publickey)Authentication failed, permission deniedConnection closed by [instance] port 22,请确认您使用 AMI 的相应用户名进行连接并且 为实例指定了正确的私有密钥 (.pem) 文件。

正确的用户名如下所示:

  • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user

  • 对于 CentOS AMI,用户名称是 centos

  • 对于 Debian AMI,用户名称是 admin

  • 对于 Fedora AMI,用户名为 ec2-userfedora

  • 对于 RHEL AMI,用户名称是 ec2-userroot

  • 对于 SUSE AMI,用户名称是 ec2-userroot

  • 对于 Ubuntu AMI,用户名称是 ubuntu

  • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

例如,要使用 SSH 客户端连接到从 Amazon Linux 实例,请使用以下命令:

ssh -i /path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com.cn

请确认您使用的私有密钥文件对应于您启动实例时选择的密钥对。

新控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. Details (详细信息) 选项卡的 Instance details (实例详细信息) 下,验证 Key pair name (密钥对名称) 的值。

  4. 如果您启动实例时没有指定密钥对,则可以终止实例并启动新实例,从而确保指定密钥对。如果这是您一直使用的实例,但您不再有密钥对的 .pem 文件,则可以使用新的密钥对取代该密钥对。有关更多信息,请参阅 丢失私有密钥时连接到 Linux 实例

旧控制台
  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

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

  3. Description 选项卡上,验证 Key pair name 的值。

  4. 如果您启动实例时没有指定密钥对,则可以终止实例并启动新实例,从而确保指定密钥对。如果这是您一直使用的实例,但您不再有密钥对的 .pem 文件,则可以使用新的密钥对取代该密钥对。有关更多信息,请参阅 丢失私有密钥时连接到 Linux 实例

如果您已经生成了您自己的密钥对,请确保您的密钥生成器被设置为创建 RSA 密钥。不接受 DSA 密钥。

如果您遇到 Permission denied (publickey) 错误但以上情况都不适用 (例如,您之前能够连接),则可能是实例主目录的权限发生了更改。/home/my-instance-user-name/.ssh/authorized_keys 的权限必须限制为仅限所有者。

在您的实例上验证权限

  1. 停止您的实例并分离根卷。有关更多信息,请参阅 停止和启动您的实例从 Linux 实例分离 Amazon EBS 卷

  2. 在当前实例所在的可用区中启动一个临时实例 (使用与您用于当前实例的 AMI 类似或相同的 AMI),并将根卷附加到此临时实例。有关更多信息,请参阅 将 Amazon EBS 卷挂载到实例

  3. 连接临时实例,创建一个挂载点并挂载您附加的卷。有关更多信息,请参阅 使 Amazon EBS 卷可在 Linux 上使用

  4. 在临时实例中,检查附加的卷的 /home/my-instance-user-name/ 目录的权限。如有必要,按如下方式调整权限:

    [ec2-user ~]$ chmod 600 mount_point/home/my-instance-user-name/.ssh/authorized_keys
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name/.ssh
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name
  5. 卸载该卷,将其与临时实例分离,然后将其重新附加到原来的实例。确保为根卷指定正确的设备名称;例如,/dev/xvda

  6. 启动您的实例。如果不再需要临时实例,可以终止它。

错误:未保护的私有密钥文件

必须保护您的私钥文件,防止其他任何用户对其进行读写操作。如果除您外其他任何人都能够读取或写入您的私钥,则 SSH 会忽略您的密钥,并且您会看到以下警告消息。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '.ssh/my_private_key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: .ssh/my_private_key.pem Permission denied (publickey).

如果在尝试登录到您的实例时看到类似的消息,请检查此错误消息的第一行,验证您为实例使用的公钥是否正确。上述示例利用 .ssh/my_private_key.pem 文件权限使用私钥 0777,这可使任何人都能读取或写入此文件。此权限级别非常不安全,因此 SSH 会忽略此密钥。要修复此错误,请运行以下命令,替入您的私钥文件的路径。

[ec2-user ~]$ chmod 0400 .ssh/my_private_key.pem

错误:私有密钥的格式必须以“-----BEGIN RSA PRIVATE KEY-----”开头,以“-----END RSA PRIVATE KEY-----”结尾

如果您使用第三方工具(如 ssh-keygen)创建 RSA 密钥对,则它会生成 OpenSSH 密钥格式的私有密钥。当您连接到实例时,如果使用 OpenSSH 格式的私有密钥来解密密码,您将收到错误 Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----"

要解决该错误,私有密钥必须采用 PEM 格式。使用以下命令创建 PEM 格式的私有密钥:

ssh-keygen -m PEM

错误:服务器拒绝我们的密钥 没有支持的身份验证方法

如果您使用 PuTTY 连接到实例并出现以下任一错误:错误:服务器拒绝了我们的密钥错误:没有支持的身份验证方法,请确认您使用 AMI 的相应用户名进行连接。在 PuTTY Configuration (PuTTY 配置) 窗口的 User name (用户名) 中键入用户名。

正确的用户名如下所示:

  • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user

  • 对于 CentOS AMI,用户名称是 centos

  • 对于 Debian AMI,用户名称是 admin

  • 对于 Fedora AMI,用户名为 ec2-userfedora

  • 对于 RHEL AMI,用户名称是 ec2-userroot

  • 对于 SUSE AMI,用户名称是 ec2-userroot

  • 对于 Ubuntu AMI,用户名称是 ubuntu

  • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

您还应验证私有密钥 (.pem) 文件是否已正确转换为 PuTTY 可识别的格式 (.ppk)。有关转换您的私有密钥的更多信息,请参阅 使用 PuTTY 从 Windows 连接到 Linux 实例

无法对实例执行 Ping 操作

ping 命令是一种 ICMP 流量 — 如果您无法对实例执行 ping 操作,请确保您的入站安全组规则允许的 Echo Request 消息的 ICMP 流量来自所有资源,或来自从中发出命令的计算机或实例。

如果您无法从实例发出 ping 命令,请确保您的出站安全组规则允许的 Echo Request 消息的 ICMP 流量发送到所有目标,或发送到您正在尝试对其执行 ping 操作的主机。

由于网络延迟或硬件问题,Ping 命令还可能被防火墙阻止或超时。您应咨询本地网络或系统管理员,以帮助进行进一步的故障排除。

错误:服务器意外关闭了网络连接

如果您使用 PuTTY 连接到实例并出现“服务器意外关闭了网络连接”错误,请确认您已在 PuTTY Configuration (PuTTY 配置) 的 Connection (连接) 页面上启用 keepalives 以避免断开连接。有些服务器如果在指定的时间内未接收到任何数据,将会断开与客户端的连接。将“Seconds between keepalives”(keepalives 之间的秒数) 设置为 59 秒。

如果在启用 keepalives 后仍出现问题,请尝试在 PuTTY Configuration (PuTTY 配置) 的 Connection (连接) 页面上禁用 Nagle 的算法。

错误:EC2 Instance Connect 的主机密钥验证失败

如果您轮换实例主机密钥,则新主机密钥不会自动上传到 AWS 可信主机密钥数据库。当您尝试使用 EC2 Instance Connect 基于浏览器的客户端连接到实例时,会导致主机密钥验证失败,并且无法连接到实例。

要解决此错误,您必须在实例上运行 eic_harvest_hostkeys 脚本,该脚本会将新主机密钥上传到 EC2 Instance Connect。脚本位于 Amazon Linux 2 实例上的 /opt/aws/bin/ 和 Ubuntu 实例上的 /usr/share/ec2-instance-connect/

Amazon Linux 2

解决 Amazon Linux 2 实例上的主机密钥验证失败错误

  1. 使用 SSH 连接到您的实例。

    您可以使用 EC2 Instance Connect CLI 或使用在启动实例时为其分配的 SSH 密钥对以及用于启动实例的 AMI 的默认用户名进行连接。对于 Amazon Linux 2,默认用户名是 ec2-user

    例如,如果实例是使用 Amazon Linux 2 启动的,实例的公有 DNS 名称是 ec2-a-b-c-d.us-west-2.compute.amazonaws.com,并且密钥对是 my_ec2_private_key.pem,请使用以下命令通过 SSH 连接到实例:

    $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    有关连接到实例的更多信息,请参阅使用 SSH 连接到 Linux 实例

  2. 导航到以下文件夹。

    [ec2-user ~]$ cd /opt/aws/bin/
  3. 在您的实例上运行以下命令。


    [ec2-user ~]$ ./eic_harvest_hostkeys

    请注意,调用成功导致没有输出。

    现在,您可以使用 EC2 Instance Connect 基于浏览器的客户端连接到您的实例。

Ubuntu

解决 Ubuntu 实例上的主机密钥验证失败错误

  1. 使用 SSH 连接到您的实例。

    您可以使用 EC2 Instance Connect CLI 或使用在启动实例时为其分配的 SSH 密钥对以及用于启动实例的 AMI 的默认用户名进行连接。对于 Ubuntu,默认用户名是ubuntu

    例如,如果实例是使用 Ubuntu 启动的,实例的公有 DNS 名称是 ec2-a-b-c-d.us-west-2.compute.amazonaws.com,并且密钥对是 my_ec2_private_key.pem,请使用以下命令通过 SSH 连接到实例:

    $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com

    有关连接到实例的更多信息,请参阅使用 SSH 连接到 Linux 实例

  2. 导航到以下文件夹。

    [ec2-user ~]$ cd /usr/share/ec2-instance-connect/
  3. 在您的实例上运行以下命令。


    [ec2-user ~]$ ./eic_harvest_hostkeys

    请注意,调用成功导致没有输出。

    现在,您可以使用 EC2 Instance Connect 基于浏览器的客户端连接到您的实例。