如果我的安全组在端口 22 上允许 TCP 并且没有网络访问控制列表,为啥我不能通过 SSH 连接到我的 EC2 实例?

Posted

技术标签:

【中文标题】如果我的安全组在端口 22 上允许 TCP 并且没有网络访问控制列表,为啥我不能通过 SSH 连接到我的 EC2 实例?【英文标题】:Why can't i SSH into my EC2 instance if my security group is allowing TCP on Port 22 and there is no Network Access Control List?如果我的安全组在端口 22 上允许 TCP 并且没有网络访问控制列表,为什么我不能通过 SSH 连接到我的 EC2 实例? 【发布时间】:2021-08-29 16:38:49 【问题描述】:

我有一个 ec2 实例,我想将其用作 mysql Workbench 的 SSH 隧道。

它的访问被锁定到我的 IP,端口 22 用于 TCP 流量。没有 NACL。

我可以在 Systems Manager Session Manager 中启动一个会话,然后查看该实例是否正常工作并且可以 ping 公共 URL。

密钥对位于我运行以下命令的文件夹中:

ssh -i "key-pair.pem" ec2-user@11.22.33.44 

但是,当我尝试通过 MySQL Workbench 连接时,操作从我的终端超时。有人可以帮忙吗?

如果我在命令中添加-vvv ,我会得到以下输出

debug1: Reading configuration data /Users/xxxx/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug2: resolve_canonicalize: hostname 11.22.33.44 is address
debug2: ssh_connect_direct
debug1: Connecting to 11.22.33.44  [11.22.33.44] port 22.
debug1: connect to address 11.22.33.44 port 22: Operation timed out
ssh: connect to host 11.22.33.44 port 22: Operation timed out

【问题讨论】:

请尝试ssh -vvv -i "key-pair.pem" ec2-user@11.22.33.44 并向我们展示调试输出。 您的实例是否在公有子网上(即连接了 Internet 网关的子网)?没有这个,就没有从互联网到您的实例的入站路由......会话管理器不需要公共互联网访问即可工作 这是一个公共子网。我添加了 -vvv 输出 【参考方案1】:

这里的问题是我的 *** 使用的 IP 与安全组中的 MyIP 选项选择的 IP 不同,因此我的请求在安全组级别被拒绝。

【讨论】:

以上是关于如果我的安全组在端口 22 上允许 TCP 并且没有网络访问控制列表,为啥我不能通过 SSH 连接到我的 EC2 实例?的主要内容,如果未能解决你的问题,请参考以下文章

具有相同区域的多个 SSH TCP 端口 22 隧道

asp.netcore在windowservice中开放端口

debian在VPS上如何开启指定端口?

请问CentOS怎么把在防火墙把除了22、80、443端口外的1-9999端口禁用掉?

如何设置防火墙端口

TCP协议漏洞影响大量Linux设备