【问题标题】:Can't SSH into AWS EC2 instance无法通过 SSH 连接到 AWS EC2 实例
【发布时间】:2019-08-08 06:29:31
【问题描述】:

我无法通过 SSH 连接到我的 EC2 实例 - 我收到超时错误。我检查了安全组以确保 SSH 流量正常。我检查了路由表并确保它们已连接到 Internet 网关。一个小时前,我能够通过 SSH 连接到实例,但现在不行了。我通过腻子连接。在使用 ec2-user@domain 之前,我遇到了相同的连接超时问题,我只需在 Putty 的主机名字段中输入 IP 地址即可解决该问题。那时我能够毫无问题地连接。然后我创建了另一个 EC2 实例,现在我无法连接到任何一个实例。我的 Putty 配置中正确引用了 .ppk 文件。我尝试使用 Mac 连接并在那里复制 .pem 文件。还有什么我可以检查的吗?另外,为什么我不能像方向指示的那样在腻子的连接字段中键入 ec2-user@domain 。我的 AWS 环境有问题吗?

【问题讨论】:

  • 您是否将通过您的安全组中的 IP 地址对端口 22 的访问设置为白名单?如果是,请检查您的本地外部 IP 地址是否更改?
  • SSH 期间连接超时不是实例问题。它通常与您的实例的安全组或域名有关 仅供参考,如果您重新启动实例并且没有弹性 IP,域名会更改。我建议通过从下拉菜单中选择“我的 IP”再次检查与您的实例关联的安全组来配置 SSH。请参阅此 link 以获取 EC2 实例的默认用户名
  • 我允许来自安全组中所有 IP 地址的 SSH 连接。我向 AWS 提交了一张票,因为我看到其他人在重新激活我的帐户时遇到了问题。

标签: amazon-web-services amazon-ec2


【解决方案1】:

诊断 SSH 问题的最佳方法是在同一子网中使用同一安全组启动一个新实例。如果这可行,则问题与原始实例有关。

您收到 timeout 错误的事实表明您的 SSH 客户端无法访问该实例。实例没有拒绝连接(例如由于密钥对),这是无法访问实例的事实。

检查事项:

  • 确认公共 IP 地址仍然是最新的(它可以在实例停止和启动时更改它)
  • 确认实例位于公有子网中,这意味着该子网具有指向 Internet 网关的路由表
  • 确认安全组允许来自您的 IP 地址的入站 SSH 流量(端口 22)(甚至是 0.0.0.0/0 用于测试目的)
  • 除非您深入了解 NACL,否则请保持默认设置
  • 确保实例是 Linux 实例(Windows 未启用 SSH)
  • 从其他网络(例如家庭、办公室、通过手机连接)尝试它,因为某些公司网络会阻止 SSH 连接

作为另一个测试,您可能想要临时创建另一个 VPC。使用 VPC 向导创建仅具有单个公有子网的 VPC。启动一个实例并确认您能够通过 SSH 连接到该实例。

【讨论】:

  • 我自己创建了新的 VPC。没有指向 Internet 网关的路由表。创建新的 Internet 网关并将其添加到路由表后,ssh 到 ec2 运行良好。谢谢!
【解决方案2】:

此问题是帐户问题。我重新激活了我的旧帐户,但不知何故,它仍然在 AWS 中被标记为“孤立”。我可以访问 AWS 控制台,但无法通过 SSH 访问任何内容。作为用户,没有办法亲自看到这一点。我不得不在 AWS 开发人员论坛上发帖,AWS 开发人员能够看到我的账户被“隔离”并代表我提交了一张票。我现在可以毫无问题地通过 SSH 连接到我的 EC2 实例。

【讨论】:

  • 这个问题让我抓狂,感谢您在此处发布您的解决方案。我可以确认我遇到了同样的问题,并且在我提交案例时亚马逊能够解决它。
【解决方案3】:

如果您已经在此线程上实施了其他解决方案,但它们仍然无法解决您的超时问题,那么这对我有用:

只需编辑您的公共路由表(它应该与您的 EC2 实例所在的子网相关联)。添加出站规则以允许端口 1024-65535 上的所有 TCP 流量

我在 ACloudGuru AWS 课程(认证解决方案架构师,助理级别)中了解到这一点——基本思想是,当您最初连接到端口 22 时,您的会话将移动到“临时端口”(在实例本身上介于 1024-65535 之间),仅在会话期间使用。会话结束后,端口将再次空闲。这允许将到实例端口 22 的新传入连接转换为会话。本质上,目的是允许一个实例同时为多个传入的 SSH 连接提供服务。

【讨论】:

    【解决方案4】:

    Spencer 的回答为我解决了这个问题。 情况似乎是这样,但有一个小的更正:您需要在网络 ACL 上编辑出站规则。

    我从头开始做了什么:

    • 创建 VPC
    • 在该 VPC 中创建子网
    • 启动 EC2 实例
    • 关注:this link,添加他们指定的所有内容
    • 更改网络 ACL 出站规则以包含 Spencer 指定的端口范围:1024-65535
    • 完成,您现在可以连接了

    请注意,如果不允许 ICMP 流量,您将无法 ping 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 2011-10-30
      • 2020-03-13
      • 2021-03-10
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      相关资源
      最近更新 更多