AWS:通过NAT GATEWAY从公共子网EC2实例到私有子网EC2实例的SSH没有发生

时间:2018-03-02 06:28:05

标签: amazon-web-services amazon-ec2 nat aws-vpc

我已经设置了以下VPC配置,但目前没有发生实例的SSH:

  • 创建了新的VPC
  • 创建了公共和私有子网
  • 将ec2实例发布到公共子网更新的Internet网关路由表
  • 将ec2实例发布到私有子网。
  • 在EIP
  • 中将natgateway与公共子网相关联
  • 使用natgateway
  • 为私有子网更新路由表

密钥对中没有发生从公共实例到私有实例的SSH。 你能让我知道我在这里错过了什么。

3 个答案:

答案 0 :(得分:1)

我怀疑您缺少一个允许两个子网上的实例之间的SSH流量的安全组。

AWS默认是安全的 - 您需要明确允许流量,角色等。

因此,在这种情况下,最简单的方法是创建一个跨越VPC的CIDR块的安全组,并将其分配给两个实例。

编辑:我刚刚注意到你说你将你的NAT网关添加到 public 子网 - 我认为你的意思是私密的。

This guide涵盖了类似的场景 - 公共网络子网和私有数据库子网,并讨论了您需要的所有路由+ ACL。

另外,当你说没有发生密钥对的ssh时 - 你是连接还是连接超时?

答案 1 :(得分:1)

首先,

  • 公共子网中的NAT网关允许私有子网中的实例通过Internet网关到达Internet进行软件更新等。

  • NAT网关在SSH进入实例中没有任何作用。

尝试进行以下测试:

  • 在EC2实例所驻留的公共和私有子网上附加默认NACL(允许所有入站和出站)。<​​/ li>
  • 为公共(例如Pub-SG)和私有子网(Prv-SG)创建2个安全组。
  • 允许从Pub-SG上的任何地方/特定ip使用SSH。
  • 出于更好的安全原因,在Prv-SG上允许来自Pub-SG的SSH作为来源。
  • 如果两个实例是使用相同的密钥对启动的,则可以使用SSH代理转发,您可以通过公共实例连接私有实例。

答案 2 :(得分:0)

当一个EC2实例与VPC中的另一个EC2实例通信时,NAT网关没有任何作用。

确保私有子网实例所属的安全组允许来自公有子网实例所属的安全组的SSH协议。

此外,与私有子网关联的NACL应允许来自公共子网实例所属的CIDR块的入站和出站SSH流量。