【问题标题】:Amazon EC2 ssh from public instance to private instance in vpcAmazon EC2 ssh 从公共实例到 vpc 中的私有实例
【发布时间】:2017-11-21 23:28:16
【问题描述】:

我是 Amazon EC2 的新手,我想使用公共实例中的 ssh 实用程序访问私有实例。

这是我的设置。

vpc 中的实例列表

私有实例的信息

私有实例的安全组入站规则

ssh 连接超时

即使我无法 ping 到私有实例。为什么无法访问私有实例?

编辑:添加路由表信息

顺便说一句,很抱歉我不知道如何在控制台视图中更改语言。

再次编辑:使用 ssh 连接 pem 文件,从公共实例连接到私有实例的私有 ip。

【问题讨论】:

  • 请编辑您的问题以包含私有子网的路由表。私有子网中的路由表应具有 Desination (VPC CIDR) Target(本地)和 NAT Gateway Destination (0.0.0.0/0) 和 Target (nat-xxxxxxxxxxxxxx)。如果您希望能够 ping 您的实例,则需要将“All ICMP - IPv4”添加到安全组入站规则。
  • @John Hanley,感谢您回答我的问题,我编辑了我的帖子,最后一张图片似乎有 0.0.0.0/0 和 nat-XXX。在将“ALL ICMP IPv4”添加到我的私有实例的入站安全组后,我也无法 ping。 ping 到私有实例的弹性 IP 地址不正确吗?
  • 如果它们在同一个 VPC 中,您应该能够通过 SSH 连接到私有实例。尝试修改私有实例的传入安全规则,以允许来自公共实例所属的安全组 id 的 SSH,该安全组 id 应以“sg-”开头,类似于您允许该 MYSQL 访问的方式
  • @Nagulb Ihab 我猜第三张照片就是你在说的......
  • 本教程可能对aws.amazon.com/blogs/security/…有帮助

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


【解决方案1】:

使用私有IP地址(以10.开头——从你的图片来看,可能是10.0.1.101)从公共实例连接到私有实例——看来你正在尝试连接到公共 IP 地址,这将不起作用。

默认情况下禁用 Ping,除非您在安全组中允许它,因此不要使用 Ping 来诊断网络配置

如果您的 SSH 命令挂起,这表明没有网络连接。最常见的原因是安全组。暂时打开安全组 22 端口的所有流量(0.0.0.0/0)并测试是否有效。 (如果实例位于私有子网中,则无论如何都无法从 VPC 外部访问它!)

除非您的私有实例需要访问 Internet,否则无需使用 NAT 网关

您似乎正在尝试对 .PPK 文件使用 SSH 命令,这是不正确的 -- PPK 文件仅用于 PuTTY。对于 SSH 命令,请使用 PEM 文件。如果您不希望将密钥存储在公共(Web)实例上,则将 Pageant 与 PuTTY 一​​起使用并启用代理转发。见:How To SSH Hop With Key Forwarding from Windows

其他提示:

  • 确保两个实例位于同一个 VPC
  • 您的私有安全组允许来自122.40.73.88/32 的访问,这是一个公共 IP 地址。这不起作用,因为实例位于私有子网中。

【讨论】:

  • 您好 John Rotenstein,感谢您回答我的问题。我做了你在我的vpc中提出的要求。 vpc 有两个实例——一个是私有的,另一个是公共的。我用编辑内容更新了我的帖子。谢谢
  • 您应该在私有实例上拥有弹性 IP 地址。您应该使用私有 IP 地址连接到私有实例 (10.0.1.101)。
  • 谢谢。我从一开始就重新尝试了一切,它奏效了。也许原因是你说的弹性IP。问题解决了。衷心感谢您。
猜你喜欢
  • 1970-01-01
  • 2020-07-03
  • 2014-11-01
  • 2014-04-27
  • 2015-05-13
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2018-08-10
相关资源
最近更新 更多