我在私有子网中有AWS Postgres实例,但没有任何VPN,如何通过本地访问它?

问题描述 投票:0回答:2

我在私有子网下有一个Postgres实例,我没有配置要连接的VPN,即使我的堡垒(jump node)不允许这样做。是否可以通过我的本地计算机将其连接到开发测试?

默认端口为5432。并且我可以通过堡垒节点通过ssh访问我的应用程序服务器。

postgresql amazon-web-services ssh-tunnel
2个回答
1
投票

由于您具有通过堡垒对应用服务器的ssh访问权限。然后,您可以创建两级ssh隧道代理。由于即使是Bastion节点也不允许Postgres,只能通过应用程序服务器允许。

1:创建从Application Server到堡垒节点的隧道。

ssh-add〜/ 。ssh / id_rsa; ssh -oStrictHostKeyChecking =否-Att -l ssh -oStrictHostKeyChecking =否-Att -l -L 5432: :5432

(继续打开此终端)2:创建从堡垒到本地计算机的另一条隧道:(打开新终端)

ssh-add〜/

。ssh / id_rsa

; ssh -oStrictHostKeyChecking = no -Att -l -L 5432:localhost:5432(继续打开此终端)

3:在连接字符串中使用本地主机或127.0.0.1和5432端口(以从本地计算机进行连接),而不是Postgress端点。

注意:用粗体突出显示的文本替换正确的ssh密钥路径和用户名。并保持两个终端都保持打开状态以保持会话状态。

0
投票
转发到数据库的通信。

ssh -i key.pem ec2-user@BATION-IP -L 5432:DATABASE-DNS-NAME:5432 然后,在您的SQL客户端中,通过以下方式连接到数据库:

localhost:5432
当SQL客户端访问本地计算机上的端口5432时,SSH连接会将该流量转发到堡垒服务器,堡垒服务器随后将其发送到:DATABASE-DNS-NAME:5432

((您实际上可以在本地使用任何端口号。例如,您可以创建到不同数据库的多个转发连接,每个都在不同的端口上。)

© www.soinside.com 2019 - 2024. All rights reserved.