AWS EC2 SSH隧道堡垒服务器

3
尝试理解它的工作原理,但文档不是很清楚。使用AWS quickstart-mongo,我正在为3个Mongo节点创建VPN,其中包括一个堡垒机。我可以通过SSH和我的密钥登录到我的堡垒机。然后,我可以将密钥复制到堡垒机并通过SSH登录到主副本节点。该节点正在运行Mongo,并通过rs.status()显示所有3个节点都在正确运行。
一旦登录到堡垒机,我尝试执行curl primary-mongo-node-ip:27017,但似乎卡住了。
本地计算机->堡垒机->副本节点1/2/3
我认为我需要以某种方式连接到堡垒机,然后设置ssh转发到primary-mongo-node-ip:27017、sec1-mongo-node-ip:27017、sec2-mongo-node-ip:27017,这样我的mongo URI连接看起来像这样:
SSH登录到bastion-dns mongodb://user:pass@localhost:1000,localhost:1001,localhost:1002/database 当我无法在没有SSH的情况下连接到堡垒机时,我该怎么做?
1个回答

2
假设Mongo实例允许所需端口的Bastion主机(在安全组中)的流量通过,您可以使用SSH隧道机制从本地主机访问集群/实例。
ssh -N -L <local_port_x>:<mongoDB instance ip>:<mongo_port_y> <ssh_username>@<bastion_host_ip> -i <ssh_key_path>

本地端口X:您想要访问远程Mongo实例的本地计算机端口

MongoDB实例IP:托管MongoDB的ec2实例的IP地址

Mongo_Port_Y:MongoDB正在侦听的端口(根据您的问题似乎为27017-请确保您可以在该端口上从Bastion主机内与Mongo实例进行通信)

Bastion_Host_Ip:直接可从本地计算机访问的Bastion主机的IP地址


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接