提问者:小点点

aws ec2 ssh 错误: “ssh: 连接到主机 x 端口 22: 操作超时”


我正在尝试通过 SSH 连接到 EC2 实例。当我尝试连接到实例时,使用 ssh -i “test.pem” ec2-user@xx.xx.xx.xx.xx 我收到错误:ssh:连接到主机 xx.xx.xx.xx 端口 22:操作超时

EC2实例配置

平台:亚马逊Linux

AMI: ami-0841edc20334f9287

实例类型:t2.micro

公共IPv4:关联的弹性IPv4

EC2 实例关联的 VPC 子网配置:

路线表:(目的地-目标)

< code>10.0.0.0/24 -本地

<代码>0.0.0.0/0-igw-…

ACL:(类型-协议-端口范围-源)

入站

SSH-TCP-22-0.0.0.0/0

开往外地的

HTTPS-TCP-443-0.0.0.0/0

安全组:(类型-协议-端口范围-源)

入站

SSH-TCP-22-xx.x.xxx.xxx/xx(我的IP)

开往外地的

HTTPS-TCP-443-0.0.0.0/0

尝试:

  1. 关注这篇AWS文章(解决方案#3),其中他们建议将此脚本添加到实例的用户数据中:
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type:
    text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
iptables -F
service sshd restart
--//

这导致了相同的错误:ssh:连接到主机public.ip端口22:操作超时

ssh-i"test.pem"ec2-user@public.ip

ssh-i"test.pem"root@public.ip

这导致了相同的错误:ssh:连接到主机public.ip端口22:操作超时

我尝试在同一 VPC 中使用公有子网,并且能够通过 ssh 连接到 ec2。比较公有子网和私有子网时,唯一的区别是公有子网的 NACL 允许所有流量入站流量。

在控制台上使用EC2 Instance Connect连接会导致终端窗口空白,即使在10分钟左右之后也是如此。


共2个答案

匿名用户

您的NACL具有ssh的入站规则。您还应该在出站NACL规则中允许返回ssh流量。因为与安全组不同,NACL是无状态的。

除此之外,您还应该允许入站和出站NACL规则的临时端口范围。临时端口是介于1024和65535之间的随机端口,发起请求的客户机选择该端口作为源端口。

纳克莱临时端口

匿名用户

尝试在您的 aws 控制台中运行可访问性分析器

AWS控制台

您可以选择分析器的源作为互联网网关,选择目标作为您的 ec2 实例。运行分析器后,它会告诉您是否可以从您的源(在本例中为IGW)访问该实例,有趣的是,它还将为您提供无法访问它的原因,这将有助于进一步调试原因。