繁体   English   中英

AWS:SSH 通过 NAT 网关从公共 su.net EC2 实例到私有 su.net EC2 实例没有发生

[英]AWS : SSH to private subnet EC2 instance from public subnet EC2 instance via NAT GATEWAY is not happening

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

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

SSH 从公共实例到私有实例不会发生在密钥对上。 你能让我知道我在这里错过了什么吗?

第一件事:

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

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

试试这个来测试:

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

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

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

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

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

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

此外,当您说使用密钥对的 ssh 没有发生时 - 您是完全连接,还是连接超时?

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

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

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

将私有实例的 ssh 公钥复制到公共实例。 使用 vscode 打开 ssh 密钥材料,然后使用 nano 或 vim 粘贴公钥的内容,保存并退出。 现在您可以 ssh 进入您的私有实例,因为私有实例的 SG 允许来自公共实例的流量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM