我的一个 EC2 实例发生了一些非常奇怪的事情。
所以我有一个安全组和一堆与该组关联的实例。我可以通过 SSH 进入所有这些实例。
我创建了一个新实例并将其放入同一个 SG。该实例具有公共 IPv4,例如可以通过端口 80 访问。
但我无法通过 SSH 连接到它。我遇到了超时。
如果我修改 SG 并允许从 0.0.0.0/0 开始的 SSH,我就可以连接。
所以问题是,为什么同一 SG 中的旧实例可以访问,而新实例却不能访问。旧实例没有分配任何其他 SG。
答案1
我不熟悉 EC2,但一般的 ssh 故障排除方案是在调试模式下运行两端(客户端 ssh 和服务器 sshd)(ssh -vvv 和 sshd -d3 )您可以暂时关闭在端口 80 上侦听的 ec2 服务,并尝试在端口 80 而不是标准端口 22 上的 ec2 中运行额外的 ssh 守护进程实例吗?类似于 /usr/sbin/sshd -d -d -d -p80 并使用 ssh -vvv -p80 从您的客户端连接到它这至少可以将问题纯粹隔离到 SG 配置
答案2
通常,端口 80 分配给 apache 和 nginx 等 Web 服务器。请检查您的服务器是否具有端口 80,这可能会给您一些启发。netstat -tuln | grep 80 lsof -i :80
另外,对于 ssh,你必须打开端口 22。SSH 默认端口是 22