首页 > 解决方案 > 除非打开 SSH 端口,否则 AWS Session Manager 无法连接

问题描述

我正在尝试使用 AWS Systems Manager Session Manager 连接到我的 EC2 实例。

这些是私有 EC2 实例,没有公共 IP,位于通过 NAT 网关访问 Internet 的 VPC 中的私有子网上。

网络 ACL 完全打开(入站和出站),但没有允许 SSH 访问实例的安全组。

我完成了所有 Session Manager先决条件(SSM 代理、Amazon Linux 2 AMI),但是,当我尝试通过 AWS 控制台连接到实例时,我收到一个红色警告标志:“我们无法连接到您的例如。常见的原因包括“。

然后,如果我将安全组添加到允许 SSH 访问(入站端口 22)的实例并等待几秒钟,重复相同的连接过程,红色警告不会出现,我可以连接到实例。

尽管我知道这些实例是安全的(它们没有公共 IP 并且位于私有子网中),但我并不希望 Session Manager 要求向它们打开 SSH 端口。事实上,官方文档说它的好处之一是:“没有开放的入站端口,也不需要管理堡垒主机或 SSH 密钥”。

我搜索了相关的帖子,但找不到任何具体的内容。有什么想法我可能会错过吗?

谢谢!

标签: amazon-web-servicesssm

解决方案


请确保您使用的是Session Manager Console,而不是 EC2 Console 来建立会话。

根据我自己的经验,我知道有时使用“连接”的 EC2 控制台选项最初不起作用。

但是,如果你去AWS Systems Manager控制台,然后到Session Manager你将能够Start session到你的实例。这假设您的 SSM 代理、角色和 Internet 连接配置正确。如果是,您应该能够看到要为其启动 ssh 会话的 SSM 托管实例。

安全组也应该允许出站连接。如果您正确设置了所有内容,则不需要入站 ssh。


推荐阅读