连接到 OS X 上的 EC2 实例的 ssh 超时问题

mam*_*usr 5 ssh mac-osx amazon-ec2 amazon-web-services amazon-vpc

我是 AWS 的新手,不是网络专家,但很想了解更多信息。

我创建了一个只有公共子网的 VPC。然后我使用 Ubuntu 14.04 64 位 pv AMI 映像 (ami-e84d8480) 创建了一个 EC2 实例,并生成了通过 ssh 连接到它所需的密钥对。

我按照亚马逊的说明通过 ssh 连接到 EC2 实例,但它不起作用。

这是我尝试的输入和调试日志:

在 OS X 10.9.4 上运行

user$ ssh -vvv -i key.pem ubuntu@xxx.xxx.xxx.xxx
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
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
Run Code Online (Sandbox Code Playgroud)

尝试解决问题:

  1. 我启用了 SSH 端口。
  2. 尝试了 ubuntu 以外的不同用户名,例如 ec2-user 和 root。
  3. 最初在安全组中设置入站 ssh 规则以仅连接到我的 IP 地址。当那不起作用时,我将其更改为允许任何 ip 连接。

但这些行动并没有解决问题。

以下是我对让 EC2 实例连接正常工作缺少什么的猜测。

  1. 我的 etc/ssh_config 文件可能会阻止连接发生。
  2. 在设置 VPC 时,我可能错过了一个重要的网络细节。
  3. 我没有为实例指定公共 IP 地址。我是通过私有IP地址连接的。

我对社区的问题:

  1. 我是否以错误的方式通过私有 IP 地址连接到实例?如果是这样,我是否需要指定一个公共 IP 地址才能连接或其他方法?

mam*_*usr 1

仔细阅读 VPC 文档后,我的第一个 EC2 实例已连接。

这是我在设置 EC2 实例和 VPC 时遇到的错误。

如果只有私有 IP,我的开发机器将永远无法连接到 EC2 实例,除非它是 VPC 网络的一部分。因此,要从外部与其通信,我需要指定为创建的每个实例分配一个关联的公共 IP 地址。

这是修复它的方法:

  1. 如果我错了,请纠正我,但看起来 EC2 浏览器控制台中没有为已创建的实例分配公共 IP 地址的选项,所以我最终删除了它。

  2. 我想返回 VPC 控制台,然后转到子网选项。然后,我选择了最初在 VPC 向导中创建并在“修改自动分配公共 IP”选项中指定的公共子网,以便为创建的每个新 EC2 实例启用公共 IP 地址的自动分配。

  3. 创建一个新的EC2实例,并分配一个新的公共IP地址。

  4. 按照亚马逊的 ssh 指示进行操作,并成功启动通信。