Mongodb AWS EC2 SSH隧道堡垒服务器

Mongodb AWS EC2 SSH隧道堡垒服务器,mongodb,amazon-web-services,ssh,ssh-tunnel,Mongodb,Amazon Web Services,Ssh,Ssh Tunnel,试图理解这是如何工作的,文档不是很清楚。使用AWS quickstart mongo,我正在为3个mongo节点创建一个VPN,并带有一个bastion服务器。我可以通过SSH和我的密钥登录到我的bastion服务器。然后我可以将密钥复制到bastion server,并将SSH复制到主副本节点。此节点正在运行mongo,并通过rs.status()显示所有3个节点都在正确运行 登录到bastion服务器后,我尝试对主mongo节点ip:27017进行卷曲,但它似乎挂起了 本地计算机->堡垒服务

试图理解这是如何工作的,文档不是很清楚。使用AWS quickstart mongo,我正在为3个mongo节点创建一个VPN,并带有一个bastion服务器。我可以通过SSH和我的密钥登录到我的bastion服务器。然后我可以将密钥复制到bastion server,并将SSH复制到主副本节点。此节点正在运行mongo,并通过rs.status()显示所有3个节点都在正确运行

登录到bastion服务器后,我尝试对主mongo节点ip:27017进行卷曲,但它似乎挂起了

本地计算机->堡垒服务器->副本节点1/2/3

我想我知道我需要以某种方式连接到Bastion服务器,然后设置一个ssh转发到主mongo节点ip:27017、sec1 mongo节点ip:27017、sec2 mongo节点ip:27017,这样我的mongo URI连接如下所示:

SSH进入堡垒dns mongodb://user:pass@localhost:1000,localhost:1001,localhost:1002/数据库


如果我无法在没有SSH的情况下事件连接到bastion服务器上的服务器,该如何执行此操作?

假设Mongo实例允许来自bastion主机(在安全组中)的流量用于所需端口,您可以使用SSH隧道机制从本地主机访问群集/实例:

ssh -N -L <local_port_x>:<mongoDB instance ip>:<mongo_port_y> <ssh_username>@<bastion_host_ip> -i <ssh_key_path>
ssh-N-L:@-i
Local\u Port\u X
:本地计算机上要访问远程Mongo实例的端口

MongoDB实例IP
:承载MongoDB的ec2实例的IP地址

Mongo\u Port\u Y
:MongoDB正在侦听的端口(从您的问题看似乎是27017-请确认您可以从该端口上的Bastion主机内与Mongo实例对话)

Bastion\u Host\u Ip
:Bastion主机上的Ip地址,可从本地计算机直接访问