Ssh 尝试访问EC2实例时超时的可能原因

Ssh 尝试访问EC2实例时超时的可能原因,ssh,amazon-ec2,amazon-web-services,Ssh,Amazon Ec2,Amazon Web Services,我无法SSH到我的实例中-操作超时。原因可能是什么?我能做些什么来解决它?重启通常需要很长时间才能生效,而且可能只会让事情变得更糟 更新:这与权限无关-我可以正常登录。我怀疑这可能是因为内存问题您是否为实例设置了适当的安全组?即,允许从您的网络访问实例上的端口22。(默认情况下,不允许所有流量。) 更新:好的,不是安全组问题。但是,如果您从同一个AMI启动另一个实例并尝试访问该实例,问题是否仍然存在?也许这个特定的EC2实例只是随机地以某种方式失败了——发生类似的事情只是时间问题。(推荐阅读:(

我无法SSH到我的实例中-操作超时。原因可能是什么?我能做些什么来解决它?重启通常需要很长时间才能生效,而且可能只会让事情变得更糟


更新:这与权限无关-我可以正常登录。我怀疑这可能是因为内存问题

您是否为实例设置了适当的安全组?即,允许从您的网络访问实例上的端口22。(默认情况下,不允许所有流量。)


更新:好的,不是安全组问题。但是,如果您从同一个AMI启动另一个实例并尝试访问该实例,问题是否仍然存在?也许这个特定的EC2实例只是随机地以某种方式失败了——发生类似的事情只是时间问题。(推荐阅读:(PDF),亚马逊网络服务传道者Jinesh Varia的一篇文章。请特别参阅标题为“设计失败,一切都不会失败”的部分。

您看过该实例的控制台输出了吗?您可以通过(实例->右键单击实例->获取系统日志)执行此操作。我曾经遇到过EC2实例上的网络服务无法正确启动的情况,导致SSH连接超时;重新启动实例通常会解决问题。

还有一种可能性。AWS安全组设置为仅与特定的传入ip地址一起工作。如果您的安全组是以这种方式设置的,您(或帐户持有人)需要将您的ip地址添加到安全组中。为此,请打开AWS仪表板,选择安全组,选择安全组,然后单击入站选项卡。然后根据需要添加您的ip。

我也遇到了同样的问题,解决方案是添加我的ip 本地计算机的IP到活动安全性中的入站规则列表 小组。在下面的入站对话框中,在端口范围中输入22,在源字段中输入/32,并在下拉列表中保留“自定义tcp规则”


我也遇到了同样的问题,解决方案是允许从任何地方访问活动安全组中的入站规则列表。在入站对话框中,在端口范围中输入22,在源字段中的任意位置输入22,然后在下拉列表中选择“ssh”


注意:这可能不是推荐的解决方案,因为这意味着可以从任何机器上通过ssh连接此实例,但我无法使其与我的本地IP一起工作。

以下是可能的问题:

  • 最有可能的情况是,安全组未正确配置,无法在端口22上向您的i.p.提供SSH访问。安全设置的更改不需要重新启动服务器即可生效,但需要等待几分钟才能生效

  • 本地防火墙配置不允许SSH访问服务器。(您可以尝试不同的internet连接,您的手机/加密狗也可以尝试)

  • 服务器未正确启动(即使在amazon控制台上,访问检查也会失败),在这种情况下,您需要停止并启动服务器

销毁并重新创建 我有一个可用区域可以连接,另一个可用区域无法连接。几个小时后,我非常沮丧,删除了可用区中的所有内容

重建一切我必须确保创造一切。这包括:

  • 创建专有网络
    • CIDR:10.0.0.0/24
  • 创建Internet网关
  • 将Internet网关连接到VPC
  • 创建路由表
  • 将路由添加到路由表
    • 目的地:0.0.0.0/0
    • 目标:
  • 创建子网
    • CIDR:10.0.0.0/24

    • 路由表:要连接,请像这样使用ssh:

      ssh -i keyname.pem username@xxx.xx.xxx.xx
      
      其中,
      keyname.pem
      是私钥的名称,
      username
      是操作系统发行版的正确用户名,
      xxx.xx.xxx
      是公共ip地址

      当超时或出现故障时,请检查以下各项:

      安全组 确保为tcp端口22和所有ip或您的ip设置入站规则。您可以通过ec2菜单在实例选项中找到安全组

      路由表 对于专有网络中的新子网,您需要更改为指向internet网关目标的路由表0.0.0.0/0。在vpc中创建子网时,默认情况下,它会分配默认路由表,该表可能不接受来自internet的传入流量。您可以编辑vpc菜单中的路由表选项,然后编辑子网

      弹性IP 对于vpc中的实例,需要分配一个公共弹性ip地址,并将其与实例关联。无法从外部访问专用ip地址。您可以在ec2菜单(而不是实例菜单)中获得弹性ip

      用户名 确保您使用的用户名正确。它应该是
      ec2用户
      root
      ubuntu
      中的一个。如果需要的话,试一下所有的

      私钥
      确保使用的是正确的私钥(启动实例时下载或选择的私钥)。看起来很明显,但复制粘贴让我两次

      这个答案是为愚蠢的人(比如我)准备的。EC2的公共DNS可能(将)在重新启动时更改。如果您没有意识到这一点,并尝试通过SSH连接到旧的公共DNS,则连接将暂停并超时。这可能会导致您认为您的EC2或安全组或。。。不,只是SSH到新的DNS。如果有必要,请更新您的
      ~/.ssh/config
      文件

      当我使用没有密码的公共Wifi时,我也遇到了类似的问题。将internet连接切换到安全连接确实解决了问题。

      如果您的EC2实例无法使用SSH访问,则需要
      ++++++++++++++++++++++++++++++++++++++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   |
      +-------+-------------+------------+---------------+-----------+-------+
      
      sudo ufw allow ssh
      sudo ufw allow 22
      sudo ufw enable
      sudo ufw status