19

我从一天开始就无法访问 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 连接不是。

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

4

15 回答 15

11

我通常的清单:

  • 在 AWS 控制台上:实例是否正常运行?
  • 它在公共子网中吗?
  • 有公网ip吗?
  • VPC 是否有 Internet 网关?
  • 它有到 Internet 网关的路由表吗?(附加到子网?)
  • 网络 ACL 规则是否为默认值?
  • 安全组是否允许 ping?如果是,ping 是否有效?
  • 安全组是否允许 SSH 入站?

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

于 2015-04-11T12:49:03.240 回答
9

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

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

现在您应该可以 SSH EC2 实例了。

于 2019-01-03T03:16:05.930 回答
4

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

于 2018-06-13T15:46:37.893 回答
1

请创建一个新的安全组并选择类型 SSH

SSH TCP 22 0.0.0.0/0

在此处输入图像描述

于 2019-10-18T06:21:56.527 回答
1

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

于 2017-01-27T15:04:36.573 回答
0

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

于 2013-08-22T13:54:23.870 回答
0

好吧,如果这种情况突然发生,请尝试断开连接并重新连接到您的 VPN(如果通过 VPN 访问)。它可能会起作用!

于 2020-08-08T00:19:51.200 回答
0

我只需按照此说明即可修复它

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html

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

于 2020-09-17T00:34:54.020 回答
0

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

于 2020-01-05T05:38:07.987 回答
0

如果上述故障排除步骤都不适合您,请确保您的 EC2 容器满足您在容器上运行的应用程序的所有系统要求。如果在访问 SSH 服务之前内存耗尽,SSH 有时会无法启动。

示例:当我第一次启动它时,我完全能够通过 SSH 连接到我的 EC2 容器。然后我开始安装 Mailcow。我的 SSH 问题是在重新启动容器后出现的,因为我安装的应用程序需要大量服务——例如 Docker。在阅读了 Mailcow 的系统要求后,我意识到 t2.micro 甚至还不能满足我运行所有程序所需的条件。我换成了 t3.large,一切都运行良好。

即使这样做了一段时间,您有时也会忘记最基本的步骤和要求。

于 2021-10-21T20:23:48.047 回答
0

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

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

但是使用新 IP 地址设置新规则是有效的!你可以通过谷歌搜索“myip”来查看ip

于 2020-07-05T02:12:44.953 回答
0

如果这种情况发生在“某一天”,那么与您的 AWS EC2 实例关联的 IP 可能会从这一天起被阻止。

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

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

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

于 2019-09-22T06:00:46.223 回答
0

如果您正在从新机器访问,请确保您正在访问的机器的 IP 包含在入站规则中。如果没有添加规则 SSH | 技术支持 | 端口:22 | 来源:我的IP

于 2020-02-09T06:41:03.543 回答
0

即使我也遇到了同样的问题,很高兴知道我没有从路由表中允许。

检查关联的 EC2 实例

并尝试这些步骤

  1. 子网、路由表和允许的 CIDR 块
  2. 与 EC2 实例关联的密钥对
  3. 安全组 ssh 端口 22 是否允许。
于 2020-01-05T15:07:11.193 回答
-1

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

于 2018-11-12T15:33:48.757 回答