繁体   English   中英

AWS Session Manager 无法连接,除非打开 SSH 端口

[英]AWS Session Manager can't connect unless opening SSH port

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

这些是私有 EC2 实例,没有公共 IP,位于 VPC 中的私有 su.net 上,可通过 NAT 网关访问 Inte.net。

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

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

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

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

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

谢谢!

请确保您使用Session 管理器控制台,而不是 EC2 控制台来建立 session。

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

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

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

感谢您的答复。 我尝试使用 Session 管理器控制台而不是 EC2 控制台进行连接,但没有成功。 实际上,我仅在第一次尝试在未打开 SSH 端口的情况下进行连接时收到红色警告。 然后我分配一个具有入站访问端口 22 的安全组并且可以连接。 现在,当我删除安全组并尝试再次连接时,我在控制台中没有收到红色警告,而是一个空白屏幕,没有任何反应,我无法进入。

话虽如此,我发现我的 EC2 实例没有在安全组中打开任何出站端口。 我为output打开了整个TCP端口范围,没有打开SSH入站并且可以连接。 然后我稍微限制了出站端口范围:尝试只打开临时范围(保留端口被阻塞),这个问题又出现了。

我的结论是必须为出站打开所有 TCP 端口范围。 这比打开 SSH 端口 22 进行入站要好,但有一点我还是不完全明白。 为了与实例建立连接和通信,需要出站端口是合理的,为什么要购买保留端口? SSH 服务器端是否使用预留端口进行反向连接?

我被这个类似的问题困住了。 我的安全组和 NACLS 的入站和出站端口仅根据需要对精确的端口和 IP 开放,此外所有内部 IP 的临时端口范围为 1024~65535。

最后起作用的是,为所有互联网 IP 开放 443 端口出站。 即使将 443 出站限制为内部 IP 范围也不起作用。

尽管所有文档都说了,您需要启用 HTTPS入站,它会起作用。

The easiest way to do this would be to create the 3 VPC interface endpoints that SSM requires in your VPC and associated subnets (Service Names: com.amazonaws.[REGION].ssm , com.amazonaws.[REGION].ssmmessages and com.amazonaws.[REGION].ec2messages )。

然后,您可以仅为端口 443 添加入口和出口规则,以允许在 VPC 内进行通信。

这比向您的私有实例开放大片 Internet 更安全,而且速度更快,因为流量保留在 AWS 自己的网络上,无需遍历 NAT 或网关。

以下是 AWS 文档的一些有用链接:

另一个让我失望的项目:确保您的 VPC 端点的安全组对 443 上的所有入站连接和所有出站连接开放。

我最初将我的连接到我正在连接的 EC2 实例的安全组(例如 SG1),当我创建另一个安全组(例如 SG2)时,我无法连接。 上述原因是为什么......最初我设置我的 VPC 端点安全组来引用 SG1,而不是 443 上的所有入站连接。

我有类似的问题,帮助我的是在服务器上重新启动 SSM 代理。 我使用 SSH 登录,然后运行:

sudo systemctl restart amazon-ssm-agent

Session 管理器控制台立即显示 EC2 实例可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM