【问题标题】:Cannot SSH in AWS EC2 Instance: Operation timed outAWS EC2 实例中无法 SSH:操作超时
【发布时间】:2021-06-02 17:09:08
【问题描述】:

从昨晚开始我就一直坚持这个。我使用的命令是ssh -i myfile.pem ubuntu@publicIP

我已将 chmod 更改为 400。

当我在终端中运行命令时,它什么也没做,然后大约 30 秒后我看到:

ssh:连接到主机 18.234.225.93 端口 22:操作超时

对于我的安全组,我选择了入站:

  • 类型=SSH 协议=TCP 端口=22 目标=0.0.0.0/0 和
  • 类型=所有 ICMP - IPv4 协议=ICMP 端口=所有目标=0.0.0.0/0

出站是相同的,但all traffic0.0.0.0/0 处多了一行

我不确定我还能做些什么来完成这项工作,以及这是否是我的问题或 AWS 的问题。我已经按照我在这里找到的一些分步说明进行操作,例如How do I set up SSH access for an Amazon EC2 instance?,但收效甚微。如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

  • 您是否在公有子网或默认 VPC 中启动了您的实例?
  • @Marcin 如果我理解正确,我最初创建了一个 VPC,然后在其中创建了两个私有子网。然后我将每个实例附加到受尊重的子网。
  • 您的实例必须在公共子网中,而不是私有子网中,以便您可以直接通过 ssh 访问它。
  • @Marcin 我的路由表指向我的 vpc。这可能是问题的一部分吗?
  • 我不知道您的 VPC 是如何设置的。您可以使用所有详细信息更新您的问题。

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


【解决方案1】:

当 SSH 连接超时时,通常表示网络流量没有到达 Amazon EC2 实例。

检查事项:

  • 实例正在运行 Linux
  • 实例在公共子网中启动,该子网定义为具有指向 Internet 网关的路由表条目
  • 实例有一个公共 IP 地址,您正在使用该地址进行连接
  • 网络访问控制列表 (NACL) 设置为其默认的“全部允许”值
  • 与实例关联的安全组允许从您的 IP 地址或 Internet (0.0.0.0/0) 在端口 22 (SSH) 上进行入站访问
  • 您的公司网络允许出站 SSH 连接(尝试备用网络,例如家庭网络、工作网络和连接到您的手机)

另请参阅:Troubleshooting connecting to your instance - Amazon Elastic Compute Cloud

【讨论】:

    【解决方案2】:

    根据您在 cmets 中的描述。

    您的 VPC 只有两个私有子网。当您将实例放置在私有子网中时,正如“私有”名称所暗示的那样,它没有没有互联网连接,默认情况下也无法连接到互联网。

    为了能够直接 ssh 进入您的实例,它必须放在 公共子网 中。因此,您必须将这样的子网添加到您的 VPC,或将现有的私有子网转换为公共子网。

    对于您需要的公共子网:

    • Internet gateway (IGW) 附加到您的 VPC
    • 0.0.0.0/0 指向IGW 的路由表
    • 子网通常应该启用分配公共 IP。

    同时具有公有子网和私有子网的 VPC 示例如下所示:

    【讨论】:

    • 我有一个公共子网设置,不幸的是,问题仍然存在。
    • @dkhayutin 您能否更新您的问题,提供您的 VPC、路由表、安全组、NACL 等的确切详细信息。如果需要,您可以截屏。
    • @dkhayutin 进展如何?你成功连接了吗?
    • Marcin 很抱歉延迟回复。是的,事实证明,主要问题是我添加的子网没有正确添加到我的路由表中。似乎解决了这个问题,然后我就可以 SSH 了!
    • @dkhayutin 很高兴听到它成功了。如果我的回答有帮助,我们将不胜感激。
    最近更新 更多