首页 > 解决方案 > 从我的家庭网络连接到我的 AWS-EC2 实例时,SSH 连接超时。但是从我的工作网络连接时它可以工作

问题描述

我正在尝试使用in连接到我的AWS EC2实例。SSHPUTTY

它在我的工作网络上工作,但在从我的家庭网络连接时出现“连接超时”错误。

是我的 ISP 的问题吗?请帮忙。

标签: amazon-web-servicesamazon-ec2sshputty

解决方案


EC2侧面:

检查适当的入站规则security group

由于您可以从工作中连接,那么您已经有一个security group允许的入站规则TCP:22

然后找到这条规则并检查它的CIDR. 要在家工作,它应该允许从您的家庭IP地址进行连接。最简单(和通用)的方式 - 将其设置为0.0.0.0/0

在客户端:

检查是否允许密钥身份验证并且您确实拥有正确的密钥

添加到你的家 ~/.ssh/config:

Host my_ec2_instance
 Hostname <your_ec2_IP_address>
 User ec2_user # <ubuntu - if you created instance with `ubuntu`-based image >
 Port 22
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/<your_ec2_key>.pub

检查密钥是否正确。

22此外,您可以手动检查端口:

telnet <your_ec2_IP_address> 22

如果建议的操作没有帮助 - 请尝试故障排除指南

调试实例连接有很好的故障排除指南

尝试以下步骤:

[EC2-VPC] 检查子网的路由表。您需要一个路由,将所有以 VPC 外部为目的地的流量发送到 VPC 的 Internet 网关。

  • 在https://console.aws.amazon.com/vpc/打开 Amazon VPC 控制台。

  • 在导航窗格中,选择 Internet 网关。验证是否有一个 Internet 网关连接到您的 VPC。否则,请选择创建 Internet 网关并按照说明创建 Internet 网关,选择 Internet 网关,然后选择附加到 VPC 并按照说明将其附加到您的 VPC。

  • 在导航窗格中,选择子网,然后选择您的子网。

  • 在 Route Table 选项卡上,验证是否存在以 0.0.0.0/0 作为目标且以您的 VPC 的 Internet 网关作为目标的路由。否则,选择路由表的 ID (rtb-xxxxxxxx) 导航到路由表的 Routes 选项卡,选择 Edit,Add another route,在 Destination 中输入 0.0.0.0/0,从 Target 中选择您的 Internet 网关,然后选择保存。

UPD:如何检查您的提供商是否允许传出ssh连接

正如操作所说,他的提供商可能会阻止传出ssh连接。幸运的是,有开放端口的公共服务22

例如,基于 shell 的优秀浏览器browsh接受通过 22 端口的连接。

请参阅他们的手册

现场 SSH 演示

只需将您的 SSH 客户端指向brow.sh,例如;ssh brow.sh. 无需身份验证。该服务仅用于演示,会话持续 5 分钟并被记录。

因此,您可以检查提供商是否允许您的传出连接:

$ telnet brow.sh 22
Trying 167.99.26.99...
Connected to brow.sh.
Escape character is '^]'.


推荐阅读