AWS ssh访问'端口22:操作超时'问题

时间:2013-07-17 11:43:14

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

我无法在一天内访问AWS EC2实例 (AMI:ubuntu / images / ebs / ubuntu-precise-12.04-amd64-server-20121001(ami-22ad1223))

$ ssh -v -i mykey.pem ubuntu@XXX.XXX.XXX.XXX
OpenSSH_5.9p1, OpenSSL 0.9.8x 10 May 2012
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to xxx.xxx.xxx.xxx [xxx.xxx.xxx.xxx] port 22.
debug1: connect to address xxx.xxx.xxx.xxx port 22: Operation timed out
ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out

这是我在EC2中的“安全组”设置。
我没有改变设置,从那时起连接很好。

Ports  Protocol  Source
22      tcp     0.0.0.0/0
80      tcp     0.0.0.0/0
3000    tcp     0.0.0.0/0
3006    tcp     0.0.0.0/0

我已多次尝试重启服务器 Web服务器进展顺利。但是SSH连接不是。

可能有什么问题以及如何使其发挥作用?

14 个答案:

答案 0 :(得分:4)

我通常的清单:

  • 在AWS控制台上:实例是否健康?
  • 是否在公共子网中?
  • 是否有公共IP?
  • VPC是否具有Internet网关?
  • 它是否具有到Internet网关的路由表? (附在子网上?)
  • 网络ACL是否规定默认值?
  • 安全组是否允许ping?如果是,ping是否有效?
  • 安全组是否允许SSH入站?

如果仍然没有线索,则在同一个VPC中启动一个新实例(来自基础AMI)。通过SSH连接到它。如果成功,请尝试从该实例ssh。

答案 1 :(得分:2)

对于像我这样的AWS新手,请记住,如果重新启动或停止/启动实例,主机名可能会发生变化。所以请记住使用正确的主机名 - 每次ssh时都会在实例描述中看到。

答案 2 :(得分:1)

我也面临同样的问题。实际上,我误删了默认的Internet网关。

  1. 转到VPC,然后从左侧菜单中单击“ Internet网关”。
  2. 单击“创建Internet网关”按钮并提供名称标签(任何名称-可选),然后单击创建。
  3. 默认情况下,它是分离的。因此,请点击“操作”下拉菜单,然后选择“附加到VPC”,并将其附加到默认的VPC
  4. 现在转到“路由表”并选择默认路由表,然后单击“路由”选项卡下的“编辑路由”按钮来编辑路由
  5. 然后在“目标”文本框中提供“ 0.0.0.0/0”,然后在目标中选择新创建的Internet网关(以igw-字母数字开头)并保存路由。

现在,您应该能够使用SSH EC2实例了。

答案 3 :(得分:0)

检查您是否连接到公共动态IP或关联ElasticIP并连接到它。

答案 4 :(得分:0)

除了Adam的回答之外,还要检查您的公共子网的RT表是否正在使用IGW和私有子网' RT具有0.0.0.0/0 - > NAT实例Id。

答案 5 :(得分:0)

如果这种情况是“从一天开始”发生的,则从这一天开始您与AWS EC2实例关联的IP可能会被阻止。

如果IP被阻止,则需要添加一个新的动态IP并将该新的动态IP与您的AWS EC2实例相关联。

步骤:
1.转到“弹性IP”。
2.分配新地址。
3.选择这个新地址。点击“操作”和“关联地址”。
4.选择您的实例,然后单击“关联”。

就我而言,向我的AWS EC2实例添加新的动态IP可以解决问题。(我的问题是我也无法从一天开始访问AWS EC2实例)

答案 6 :(得分:0)

请创建一个新的安全组,然后选择SSH

SSH TCP协议 22 0.0.0.0/0

enter image description here

答案 7 :(得分:0)

我在图书馆中使用公共wifi,这不能让我连接,当我切换到移动热点wifi(受密码保护)时,我才知道。尝试切换到受保护的网络。

答案 8 :(得分:0)

即使我也遇到了同样的问题,很高兴知道我不允许进入路由表。

检查与EC2实例相关联

尝试这些步骤

  1. 子网,路由表和允许的CIDR块
  2. 与EC2实例关联的密钥对
  3. 是否允许使用安全组ssh端口22。

答案 9 :(得分:0)

如果要从新计算机访问,请确保入站规则中包含要访问的计算机的IP。如果不添加规则 SSH | TCP |端口:22 |资料来源:我的IP

答案 10 :(得分:0)

对我来说,我必须删除特定实例安全组的所有规则,并为相同的ssh,http和https创建新规则

由于某种原因,在停止实例并稍后启动它之后,我的IP发生了变化……可能是因为我切换了wifi连接设备。

但是用新IP地址设置新规则是可行的!您可以通过搜索“ myip”来检查ip

答案 11 :(得分:0)

好吧,如果这突然发生,请尝试断开连接并重新连接到您的VPN(如果通过VPN进行访问)。可能有效!

答案 12 :(得分:0)

我只需按照以下说明即可解决

NumPy doc

它设置您的私钥对以及安全组。我认为这个问题主要是因为默认安全组没有本地IP设置的ssh入站。

答案 13 :(得分:-1)

尝试停止ec2实例,然后重新启动。它对我有用!