如何解决使用 EC2 Instance Connect 连接到 EC2 实例时出现的问题?

2 分钟阅读
0

我在尝试使用 Amazon EC2 Instance Connect 连接到 Amazon Elastic Compute Cloud (Amazon EC2) 实例时收到以下错误:“创建实例连接时出现问题。登录失败。如果此实例刚刚启动,请在一两分钟后重试。”

简短描述

以下是 EC2 Instance Connect 可能无法按预期运行的常见原因:

  • EC2 Instance Connect 不支持操作系统发行版。
  • EC2 Instance Connect 软件包未安装在实例上。
  • Amazon Identity and Access Management (IAM) 策略或权限缺失或不正确。
  • 与该实例关联的安全组未列出 EC2 Instance Connect 服务 IP。

要使用基于浏览器的客户端进行连接,您的实例必须具有公有 IPv4 地址。如果您的实例没有公有 IP 地址,请从同一 VPC 内的计算机使用 EC2 Instance Connect 进行连接。

**注意:**如果您启用了适用于 Linux 的 EC2 Serial Console,则可以将其用于对受支持的基于 Nitro 的实例类型进行故障排除。Serial Console 可帮助您对启动问题、网络配置和 SSH 配置问题进行故障排除。Serial Console 无需有效的网络连接即可连接到您的实例。您可以使用 Amazon EC2 控制台或 Amazon 命令行界面 (Amazon CLI) 来访问 Serial Console。

在使用 Serial Console 之前,您必须授予账户访问权限,并创建向您的 IAM 用户授予访问权限的 IAM 策略。此外,使用 Serial Console 的每个实例都必须包含至少一个使用密码的用户。如果您的实例无法访问,并且您尚未配置对 Serial Console 的访问权限,则可以按照以下文章链接中提供的手动连接实例的说明进行操作。

有关配置适用于 Linux 的 EC2 Serial Console 的信息,请参阅配置对 EC2 Serial Console 的访问权限

**注意:**如果在运行 Amazon CLI 命令时收到错误,请确保您使用的是最新版本的 Amazon CLI

解决方法

  1. 验证 EC2 Instance Connect 是否支持您的实例的 Linux 发行版

  2. 验证您的受支持实例是否安装了 EC2 Instance Connect 软件包

  3. 验证尝试使用 EC2 Instance Connect 的 IAM 用户是否拥有将公钥推送到该实例的权限

  4. 验证实例的安全组规则是否列出了 EC2 Instance Connect IP:

基于浏览器的 SSH 连接

基于浏览器的 SSH 连接要求您的实例的安全组入站规则允许 EC2 Instance Connect 在 TCP 端口 22 上访问 SSH。

EC2 Instance Connect 使用特定的 IP 范围与您的实例进行基于浏览器的 SSH 连接。这些 IP 范围因亚马逊云科技区域而异。要查找特定区域中 EC2 Instance Connect 的亚马逊云科技 IP 地址范围,请使用以下命令:

**注意:**在以下命令中,将 us-east-1 替换为您的实例的亚马逊云科技区域。确保您的实例位于 EC2 Instance Connect 支持的区域。

Windows(需要 Windows PowerShell for Amazon Web Services)

PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 -ServiceKey EC2_INSTANCE_CONNECT | select IpPrefix

Linux(需要 curl 和 jq)

$ curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'

更新您的安全组入站规则,以允许上述命令返回的 IP 范围可以访问 TCP 端口 22。

EC2 Instance Connect CLI 连接

更新您的安全组入站规则,以允许您的 IP 可以访问 TCP 端口 22。

相关信息

在您的 EC2 实例上安装 EC2 Instance Connect

使用 EC2 Instance Connect 连接到您的 Linux 实例

如果在 Amazon EC2 实例初次启动后丢失了 SSH 密钥对,我该如何连接到该实例?

为什么我无法使用 SSH 连接到 Amazon EC2 Linux 实例?

AWS 官方
AWS 官方已更新 2 年前