SSH 到私有子网中的节点。除了堡垒还有别的办法吗? (特别是 windows)

SSH to a node in private subnet. Any other way except having a bastion? (for windows especially)

我在 AWS 上创建了一个带有私有子网和 public 子网的 VPC。在尝试了好几次之后,我可以通过 SSH 连接到私有机器的唯一方法是通过 public 子网上的一个节点(并使用 ssh -A)。现在,我的疑问是:是否没有其他方法可以通过 ssh 连接到私有节点?对节点的创建者来说不是public吗?

我无法理解为什么即使是在私有子网中创建该节点的人也无法登录它(除非我可以但我还不知道)?

如果 ssh 进入它的唯一方法是通过堡垒节点,那么,我如何通过 RDP 连接到私有子网上的 Windows 机器?唯一的方法是在 public 子网上有一台 windows 机器,然后用它来 RDP 到私有机器上吗?

谢谢!

私有子网的目的是保护它不受外界影响。但是这种保护的代价是需要的限制。

为了访问私有子网上的 node/instance,您必须通过 public 子网上的 node/instance。没有办法解决这个问题。否则,它不是私有的,因此不受保护。

要通过 RDP 连接到私有子网中的 Windows 实例,您不需要 public 子网中的 Windows 实例。事实上,在 public 子网中使用 Linux 实例可能更容易:

  1. 使用您选择的 SSH 客户端,与 public 子网(您的堡垒)中的 Linux 实例建立 SSH 连接。
  2. 通过 SSH 连接创建一个 "tunnel" 到您的私有 Windows 实例。

例如,如果您的 Windows 实例的 IP 为 10.0.0.4,那么您可以创建一个 SSH 隧道,将 localhost:13389 隧道连接到 10.0.0.4:3389。然后,当您通过 RDP 连接到 "localhost:13389" 时,您的 SSH 客户端会将连接转发到堡垒,而堡垒又会将其转发到您的 Windows 实例。