【问题标题】:SSH into EC2 instance timeout [duplicate]SSH 进入 EC2 实例超时 [重复]
【发布时间】:2020-09-03 23:09:01
【问题描述】:

我正在尝试通过 SSH 连接到 EC2 实例。它以前工作过,但突然停止工作。现在,我收到错误port 22: Operation timed out 。我的入站安全规则允许端口 22 上的所有 IP 地址用于 SSH。

我尝试从图像创建新实例并下载新密钥,但我仍然无法通过 SSH 连接到新实例。

这可能是什么问题?

当我尝试访问实例的公共 IP 时,我的 API 正在服务器上运行。

解决方案:ufw 防火墙不允许 ssh。解决方案:Locked myself out of SSH with UFW in EC2 AWS

【问题讨论】:

  • 可以查看实例系统日志和截图吗? (通过EC2控制台,右键->实例设置)
  • 不确定要在日志中查找什么,但日志看起来没问题。它显示了密钥等。最后一行显示 ip-.... login: Screenshot 也有该登录语句。
  • 您是在默认 VPC 还是在自定义 VPC 的公有子网中运行实例?

标签: amazon-web-services amazon-ec2 ssh


【解决方案1】:

好的,所以实例日志/屏幕截图看起来还不错。我们假设这是某个地方的网络问题。第一步是为您的 VPC 创建一个 AWS Flowlog。 Flowlogs 允许查看流量是否被安全组或类似的东西阻止。如果您的实例由于 SG 而没有收到流量,您会在流日志中看到它。

要创建流程日志,请转到 VPC 控制台 > VPC 并选择您的 VPC。在下部框架中,转到 flowlog 选项卡并选择 create a flowlog。我建议您仅过滤“拒绝”,否则它会很快填满。您可以将其发布到 CloudWatch 并进行查看。

流日志是按网络接口传送的,因此您需要检查您的 EC2 实例是否有相关的 ENI-id。

【讨论】:

  • 在哪里指定 ENI-id?我现在正在设置流日志 - 编辑:好的,我想我明白你的意思了
  • 好的,所以我创建了最大聚合间隔为 10 分钟的流日志。它在 VPC 控制台中处于活动状态。
  • 酷,第一步就是尝试登录,看看是否出现任何拒绝/接受消息
  • 好的。我现在该怎么做才能使用这个日志?当我尝试 SSH 时,日志中没有任何反应。
  • 我想我找到了问题所在。我认为我的 apache 服务器上的 ufw 防火墙不允许 SSH。我还在服务器上登录时忘记运行sudo ufw allow ssh..