如何通过 NAT 服务器通过 SSH 连接到 VPC 私有子网中的 ec2 实例

jas*_*ing 19 linux ssh ssh-tunnel amazon-ec2 amazon-vpc

我在 aws 中创建了一个带有公有子网和私有子网的 VPC。私有子网不能直接访问外部网络。因此,公共子网中有一个 NAT 服务器,它将所有出站流量从私有子网转发到外部网络。

目前,我可以从公共子网到私有子网的 SSH,也可以从 NAT 到私有子网的 SSH。但是,我想要的是从任何机器(家用笔记本电脑、办公机器和移动设备)到私有子网中的实例的 SSH。

我做了一些研究,我可以设置 NAT 框以将 SSH 转发到私有子网中的实例。但我对此并不走运。

任何人都可以列出我需要设置的内容以使其成为可能。

命名是:

笔记本电脑(VPC 之外的任何设备)

nat(公共子网中的 NAT 服务器)

目的地(我想连接到的私有子网中的服务器)

不确定以下是否有限制:

“destination”没有公网IP,只有子网ip,例如10.0.0.1 “destination”不能通过nat的public连接到“nat”。有几个“目标”服务器,我需要为每个设置一个吗?

谢谢

小智 33

您可以设置堡垒主机以连接到 VPC 中的任何实例:

http://blogs.aws.amazon.com/security/post/Tx3N8GFK85UN1G6/Securely-connect-to-Linux-instances-running-in-a-private-Amazon-VPC

您可以选择启动一个用作堡垒主机的新实例,或使用您现有的 NAT 实例作为堡垒。

如果您创建一个新实例,作为概述,您将:

1) 为您的堡垒主机创建一个安全组,以允许从您的笔记本电脑进行 SSH 访问(请注意第 4 步的此安全组)

2) 在您的 VPC 的公有子网中启动一个单独的实例(堡垒)

3) 在启动时或通过分配弹性 IP 为该堡垒主机提供公共 IP

4) 更新每个没有公共 IP 的实例的安全组,以允许从堡垒主机进行 SSH 访问。这可以使用堡垒主机的安全组 ID (sg-#####) 来完成。

5)使用SSH代理转发(ssh -A user@publicIPofBastion)首先连接到堡垒,然后在堡垒中SSH进入任何内部实例(ssh user@private-IP-of-Internal-Instance)。代理转发负责转发您的私钥,因此不必将其存储在堡垒实例上(切勿将私钥存储在任何实例上!!

上面的 AWS 博客文章应该能够提供有关该过程的一些细节。如果您需要有关堡垒主机的更多详细信息,我还提供了以下内容:

堡垒主机的概念:http : //en.m.wikipedia.org/wiki/Bastion_host

如果您需要澄清,请随时发表评论。

  • 确保在堡垒的入站和出站上都允许 SSH/22。 (3认同)