使用 EC2 Instance Connect 的连接失败(基于浏览器的 SSH 连接)
Connection failure using EC2 Instance Connect (browser-based SSH connection)
启动 AWS EC2 实例似乎非常简单,但在连接到新启动的实例时,事情变得很棘手。连接到这样一个科技巨头提出的实例的过程是非常违反直觉的。
作为一个简短的提醒,我应该补充一点,“实例”在技术上是亚马逊弹性计算云 (EC2) 上的虚拟机 运行,有关更多信息,可以查看 this link .
本次讨论中提到的 ec2 实例是 Ubuntu Server 20.04 LTS (HVM)。
使用 EC2 Linux 实例的说明已给出 here.
AWS EC2 提出了三种不同的实例连接方式:
- EC2 实例连接(基于浏览器的 SSH 连接),
- 会话管理器
- SSH 客户端
现在关于连接到上述实例只有某些连接正确建立而其余建议的方法失败,这里是连接成功和失败的列表:
- Ubuntu 实例,安全组源“Custom=0.0.0.0/0”,使用 EC2 Instance Connect(基于浏览器的 SSH 连接)和 SSH 客户端建立连接。
- Ubuntu 实例,安全组来源“我的 IP=$IP”,仅使用 SSH 客户端(Ubuntu 上的终端和 windows 上的 PuTTY)建立连接,不使用 EC2实例连接。
以上两种情况都已在 Ubuntu 20.04 和 Windows 10 作为本地计算机上进行了尝试,并且两台计算机上的问题仍然相似。我浏览了提议的故障排除文档中讨论的大多数失败案例 here 并在我的实例上对其进行了验证。然而问题依然存在。我还应该补充一点,我从未尝试过“会话管理器”连接方法,尽管打开它的选项卡已经会提供一些关于“未安装”代理和功能的信息。
关于这个问题有什么想法吗?有人面临同样的问题吗?
来自Docs
(Amazon EC2 console browser-based client) We recommend that your instance allows inbound SSH traffic from the recommended IP block published for the service.
Reason for this -> EC2 Instance Connect works by making an HTTPS connection between your web browser and the backend EC2 Instance Connect service on aws. Then, EC2 Instance Connect establishes a "mostly normal" SSH connection to the target instance in other words the request is going from backend ec2 instance connect and not your browser that is why it needs IP address from accepted ranges of that region .
基于浏览器 EC2 Instance Connect 使用特定的 IP 范围进行基于浏览器的 SSH 连接到您的实例。这些 IP 范围因 AWS 区域而异。要查找特定区域中 EC2 Instance Connect 的 AWS IP 地址范围,请使用以下内容(只需将您的区域替换为您所在的区域)(对于 Linux 需要 curl 和 jq 作为先决条件)
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="Your region") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'
无论返回什么值,只需将其加到您的安全规则中即可。
Ubuntu instance, security group source "Custom=0.0.0.0/0", Connection establishes using both EC2 Instance Connect (browser-based SSH connection) and SSH client.
这是有效的,因为 0.0.0.0/0 允许来自所有 IP 范围的连接(也包括您所在地区的 IP)。
有关详细信息,请尝试阅读此 troubleshoot
启动 AWS EC2 实例似乎非常简单,但在连接到新启动的实例时,事情变得很棘手。连接到这样一个科技巨头提出的实例的过程是非常违反直觉的。
作为一个简短的提醒,我应该补充一点,“实例”在技术上是亚马逊弹性计算云 (EC2) 上的虚拟机 运行,有关更多信息,可以查看 this link .
本次讨论中提到的 ec2 实例是 Ubuntu Server 20.04 LTS (HVM)。 使用 EC2 Linux 实例的说明已给出 here.
AWS EC2 提出了三种不同的实例连接方式:
- EC2 实例连接(基于浏览器的 SSH 连接),
- 会话管理器
- SSH 客户端
现在关于连接到上述实例只有某些连接正确建立而其余建议的方法失败,这里是连接成功和失败的列表:
- Ubuntu 实例,安全组源“Custom=0.0.0.0/0”,使用 EC2 Instance Connect(基于浏览器的 SSH 连接)和 SSH 客户端建立连接。
- Ubuntu 实例,安全组来源“我的 IP=$IP”,仅使用 SSH 客户端(Ubuntu 上的终端和 windows 上的 PuTTY)建立连接,不使用 EC2实例连接。
以上两种情况都已在 Ubuntu 20.04 和 Windows 10 作为本地计算机上进行了尝试,并且两台计算机上的问题仍然相似。我浏览了提议的故障排除文档中讨论的大多数失败案例 here 并在我的实例上对其进行了验证。然而问题依然存在。我还应该补充一点,我从未尝试过“会话管理器”连接方法,尽管打开它的选项卡已经会提供一些关于“未安装”代理和功能的信息。
关于这个问题有什么想法吗?有人面临同样的问题吗?
来自Docs
(Amazon EC2 console browser-based client) We recommend that your instance allows inbound SSH traffic from the recommended IP block published for the service.
Reason for this -> EC2 Instance Connect works by making an HTTPS connection between your web browser and the backend EC2 Instance Connect service on aws. Then, EC2 Instance Connect establishes a "mostly normal" SSH connection to the target instance in other words the request is going from backend ec2 instance connect and not your browser that is why it needs IP address from accepted ranges of that region .
基于浏览器 EC2 Instance Connect 使用特定的 IP 范围进行基于浏览器的 SSH 连接到您的实例。这些 IP 范围因 AWS 区域而异。要查找特定区域中 EC2 Instance Connect 的 AWS IP 地址范围,请使用以下内容(只需将您的区域替换为您所在的区域)(对于 Linux 需要 curl 和 jq 作为先决条件)
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="Your region") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'
无论返回什么值,只需将其加到您的安全规则中即可。
Ubuntu instance, security group source "Custom=0.0.0.0/0", Connection establishes using both EC2 Instance Connect (browser-based SSH connection) and SSH client.
这是有效的,因为 0.0.0.0/0 允许来自所有 IP 范围的连接(也包括您所在地区的 IP)。 有关详细信息,请尝试阅读此 troubleshoot