我无法通过SSH进入实例-操作超时。可能是什么原因造成的,我该怎么解决?重新启动通常需要很长时间才能生效,并且可能只会使事情变得更糟
更新:这与权限无关-我通常可以正常登录。我怀疑可能是因为内存问题
我无法通过SSH进入实例-操作超时。可能是什么原因造成的,我该怎么解决?重新启动通常需要很长时间才能生效,并且可能只会使事情变得更糟
更新:这与权限无关-我通常可以正常登录。我怀疑可能是因为内存问题
Answers:
您是否为实例设置了适当的安全组?即一种允许从您的网络访问实例上的端口22的端口。(默认情况下,不允许所有流量。)
更新:好的,不是安全组问题。但是,如果您从同一AMI启动另一个实例并尝试访问该实例,问题是否仍然存在?也许这个特定的EC2实例以某种方式随机地失败了–发生这种情况只是时间问题。(推荐阅读:云架构师:最佳实践(PDF),由Amazon Web服务宣传员Jinesh Varia撰写,特别是标题为“为失败而设计,不会失败”的一节。)
ec2-authorize
,您可以使用Elasticfox Firefox扩展程序轻松配置组。)
我遇到了同样的问题,解决方案最终是将本地计算机的IP添加到活动安全组中的入站规则列表中。在下面的入站对话框中,在端口范围中输入22,在源字段中输入本地IP / 32,然后在下拉列表中保留“ custom tcp rule”。
我有一个可用区域,可以连接,而另一个则不能。几个小时后,我感到非常沮丧,以至于删除了该可用区域中的所有内容。
重新构建所有内容,我必须确保创建所有内容。这包括:
CIDR: 10.0.0.0/24
Destination: 0.0.0.0/0
Target: <Internet Gateway from earlier>
CIDR: 10.0.0.0/24
Routing Table: <Routing Table from earlier
我花了很多时间才弄明白这一切。我以我认为可能最有效的方式订购了这些步骤,但是您可能必须调整它们以使下一项可用。
我并不是在建议您像我一样使用热核发电。我提供所有这些信息,以便您可以检查这些关联以确保您的关联正确。
要使用ssh进行连接,如下所示:
ssh -i keyname.pem username@xxx.xx.xxx.xx
keyname.pem
您的私钥名称在哪里,username
是您的OS发行版的正确用户名,并且xxx.xx.xxx.xx
是公共IP地址。
超时或失败时,请检查以下内容:
确保对tcp端口22和所有ip或您的ip 都有入站规则。您可以在实例选项中通过ec2菜单找到安全组。
对于vpc中的新子网,您需要更改为将0.0.0.0/0指向Internet网关target的路由表。在vpc中创建子网时,默认情况下,它将分配默认路由表,该路由表可能不接受来自Internet的传入流量。您可以在vpc菜单中然后在子网中编辑路由表选项。
对于vpc中的实例,您需要分配一个公共弹性ip地址,并将其与该实例相关联。私有ip地址无法从外部访问。您可以在ec2菜单(而非实例菜单)中获得弹性IP。
确保您使用正确的用户名。它应该是一个ec2-user
或root
或ubuntu
。如有必要,请全部尝试。
确保使用正确的私钥(启动实例时下载或选择的私钥)。似乎很明显,但是复制粘贴让我两次。
您是否查看了实例的控制台输出?您可以通过AWS控制台执行此操作(“实例->右键单击实例->获取系统日志”)。我曾经遇到过EC2实例上的网络服务无法正确启动,导致SSH连接超时的情况。重新启动实例通常是固定的事情。
我找到2小时后
注意ssh ip 120.138.105.251/32
不是aws实例IP地址
这不是您的本地IP 127.0.0.1
这不是您的本地IP localhost
但是但是但是
它是您尝试从其访问AWS实例的个人计算机的您的公共IP地址
在AWS文档上查看此帮助页面:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout 您可能会在这里找到解决方案。对我来说,这部分解决了问题:
[EC2-VPC]检查子网的路由表。您需要一条路由,将发往VPC之外的所有流量发送到VPC的Internet网关。
通过https://console.aws.amazon.com/vpc/打开Amazon VPC控制台。
在导航窗格中,选择“ Internet网关”。验证是否有Internet网关连接到您的VPC。否则,请选择“创建Internet网关”并按照说明创建Internet网关,选择Internet网关,然后选择“附加到VPC”并按照说明将其附加到您的VPC。
在导航窗格中,选择“子网”,然后选择您的子网。
在“路由表”选项卡上,验证是否存在以0.0.0.0/0为目的地的路由,以VPC为目标的Internet网关。否则,选择路由表的ID(rtb-xxxxxxxx)导航到路由表的“路由”选项卡,选择“编辑”,“添加其他路由”,在“目标”中输入0.0.0.0/0,从“目标”中选择Internet网关,然后选择保存。
但是我建议您检查一下上面链接涵盖的所有选项,您可能会发现一个或多个问题。
允许ufw的ssh和端口22,然后将其启用并使用status命令进行检查
sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status
如果SSH访问不适用于您的EC2实例,则需要检查:
如果您使用的是VPC实例(您的实例已附加了VPC ID和子网ID),请检查:
0.0.0.0/0
“目的地”和“ Internet网关”作为目标。在Linux上,您还可以在实例的网络中的系统日志中检查路由信息,例如:
++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device | Up | Address | Mask | Scope | Hw-Address |
+--------+------+------------------------------+---------------+-------+-------------------+
| lo | True | 127.0.0.1 | 255.0.0.0 | . | . |
| eth0 | True | 172.30.2.226 | 255.255.255.0 | . | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination | Gateway | Genmask | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
| 0 | 0.0.0.0 | 172.30.2.1 | 0.0.0.0 | eth0 | UG |
| 1 | 10.0.3.0 | 0.0.0.0 | 255.255.255.0 | lxcbr0 | U |
| 2 | 172.30.2.0 | 0.0.0.0 | 255.255.255.0 | eth0 | U |
+-------+-------------+------------+---------------+-----------+-------+
其中UG
标志显示你的互联网网关。