3

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

  • 创建了一个新的 VPC
  • 创建了公共子网和私有子网
  • 向公有子网启动了一个 ec2 实例,更新了 Internet 网关的路由表
  • 将 ec2 实例启动到私有子网。
  • 在 EIP 中将 natgateway 关联到公共子网
  • 使用 natgateway 为私有子网更新路由表

从公共实例到私有实例的 SSH 不会通过密钥对发生。你能告诉我我在这里错过了什么吗?

4

3 回答 3

2

第一件事:

  • 公共子网中的 NAT 网关允许来自私有子网的实例通过 Internet 网关访问 Internet 以进行软件更新等。

  • NAT 网关在通过 SSH 连接到实例中没有任何作用。

试试这个来测试:

  • 在您的 EC2 实例所在的公共和私有子网上附加默认 NACL(允许所有入站和出站)。
  • 为公共(比如说 Pub-SG)和私有子网(Prv-SG)创建 2 个安全组。
  • 在 Pub-SG 上允许来自任何地方/特定 ip 的 SSH。
  • 在 Prv-SG 上,出于更好的安全原因,允许来自 Pub-SG 的 SSH 作为源。
  • 如果两个实例都使用相同的密钥对启动,那么使用 SSH 代理转发您可以通过公共实例连接私有实例。
于 2019-02-03T07:25:59.227 回答
1

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

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

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

编辑:我刚刚注意到您说您将 NAT 网关添加到公共子网 - 我想您的意思是私有的。

本指南涵盖了类似的场景 - 公共 Web 子网和私有 db 子网,并讨论了您需要的所有路由 + ACL。

另外,当您说没有使用密钥对进行 ssh 时 - 您是在连接,还是连接超时?

于 2018-03-02T09:29:32.227 回答
0

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

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

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

于 2018-03-10T18:36:02.227 回答