Database 通过IntelliJ IDEA中的两个ssh隧道连接到数据库
我正试图在IntelliJ IDEA Ultimate中添加一个postgresql数据库作为数据源。Database 通过IntelliJ IDEA中的两个ssh隧道连接到数据库,database,intellij-idea,ssh,datasource,ssh-tunnel,Database,Intellij Idea,Ssh,Datasource,Ssh Tunnel,我正试图在IntelliJ IDEA Ultimate中添加一个postgresql数据库作为数据源。 我已经通过一个ssh隧道使用了一个数据源。但是现在数据库服务器位于防火墙后面,防火墙只接受来自管理服务器的ssh连接。访问db服务器的唯一方法是通过管理服务器 因此,我(或IntelliJ)必须通过ssh连接到此服务器,然后通过使用另一个用户,通过ssh隧道连接到数据库服务器 一切都清楚了吗-D 问题是IntelliJ只提供配置一个ssh隧道。但是在第一个隧道之后,我需要使用第二个隧道,以最终
我已经通过一个ssh隧道使用了一个数据源。但是现在数据库服务器位于防火墙后面,防火墙只接受来自管理服务器的ssh连接。访问db服务器的唯一方法是通过管理服务器 因此,我(或IntelliJ)必须通过ssh连接到此服务器,然后通过使用另一个用户,通过ssh隧道连接到数据库服务器 一切都清楚了吗-D 问题是IntelliJ只提供配置一个ssh隧道。但是在第一个隧道之后,我需要使用第二个隧道,以最终连接到数据库服务器。。。 有什么想法吗 Thx提前 我会使用OpenSSH或任何类似工具创建一个将
127.0.0.1:2222
通过管理服务器转发到firewall:22
,然后使用IntelliJ IDEA隧道配置来127.0.0.1:2222
,就像处理单个隧道一样
ssh-L 127.0.0.1:2222:防火墙:22
您可以配置以自动化此过程。在Windows机器上,我在创建隧道/端口转发并自动启动它们方面有着丰富的经验。
ssh
支持您的开箱即用方案。诀窍是在管理服务器的~/.ssh/config
文件中创建两个条目,一个用于您的用户
,另一个用于特殊用户
。然后使用ProxyJump
将连接链接在一起
因此,首先为管理服务器和从本地计算机连接到的用户设置一个Host
部分:
Host mgmt
HostName management.server.com
User your-user
...
然后,在您要登录的管理服务器上为用户设置主机:
Host mgmt-special-user
HostName management.server.com
User special-user
对于同一台主机,添加一条指令,告知ssh
创建数据库隧道:
LocalForward <free-port-on-your-box> <db-ip-or-host>:<db-port>
现在,您可以从本地计算机ssh管理特殊用户ssh
将自动跳转通过mgmt
主机,还将自动通过mgmt
扩展隧道并返回到本地计算机
ProxyJump
(-J
)添加到OpenSSH 7.3(2016年发布)中。Thx。防火墙没有真正的地址(硬件),连接只是通过它。因此,如果我将本地主机的端口转发到管理服务器,我只在那里,而不在db服务器上?ssh连接到数据库服务器本身的地址或方式?然后您只需通过管理服务器将端口转发到数据库服务器,并作为本地主机连接到数据库,然后通过管理服务器和防火墙将其转发到数据库服务器。因此,我必须在管理服务器上添加端口转发,是吗?是的,从你描述的来看,这似乎是一条路要走。
ProxyJump mgmt