amazon-web-services - 从我的家庭网络连接到我的 AWS-EC2 实例时,SSH 连接超时。但是从我的工作网络连接时它可以工作
问题描述
我正在尝试使用in连接到我的AWS EC2
实例。SSH
PUTTY
它在我的工作网络上工作,但在从我的家庭网络连接时出现“连接超时”错误。
是我的 ISP 的问题吗?请帮忙。
解决方案
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 '^]'.
推荐阅读
- jquery-ui - jqueryui按钮启用不会呈现为启用
- python - 在 django 中动态设置选择?
- swift - 在 macOS Swift 中检测命令按键
- c# - 如何在 Startup.cs 中实例化一个单例类,然后在 net core 中使用?
- google-apps-script - 与菜单或手动执行的脚本相比,Google-Sheets 的 Google-Apps-Script 触发器提供了不正确的答案
- c - C:scanf 用于格式化程序 %s 的单个字符
- php - PHPUnit:我期待异常,它被抛出但“$this->expectException”不起作用
- google-data-studio - 合并两个(或多个)Google Ads 帐户以与另一个数据源混合
- sql - 如何查看 SQL 表值是否更改,如果更改,则使用旧值代替
- c++ - 如何将 C++ Gtkmm 从 Linux 交叉编译到 Windows?