我的知识库 / Linux / 使用 SSH Tunnel 连接中间件
一般线上的数据库是不允许本机直接访问的,只能通过跳板机访问。但是这么多的开发人员都要访问数据库的话,跳板机的数量就有压力了。
本篇介绍如何使用 SSH Tunnel 的方式访问数据库,数据库不限于 Sql Server、MySql、Mongodb、Redis 等。
使用 DBeaver
或 Navicate
等工具通过 SSH Tunnel 方式访问关系型数据库,以 Sql Server 为例。
打开DBeaver,选择 Sql Server 连接。
在连接配置页面 Main,输入 Sql Server 连接的基本信息,这里 host 直接使用原本的数据库 host 即可。
切至 SSH,勾选 Use SSH Tunnel,输入跳板机的连接配置即可。
配置完成,Ok连接即可。
本机需要安装 SSMS 和 Putty 工具。
这篇文档对我帮助很大:https://courses.cs.washington.edu/courses/cse444/11wi/resources/tunneling-instructions.html
打开 Putty 工具,在 Session 创建跳板机的连接。
并且在 Connection 中配置登录账号和密码(或密钥文件)。
然后在 Connection=>SSH=>Tunnels 中添加 Sql Server 的 server 信息
在 Source Port 中输入
<port>
(Sql Server的默认端口是1433);在 Destination 中输入
<host>:<port>
(例如:db.example.com:1433);输入完之后点击Add按钮。
完成操作之后你的页面也应是下面这个样子。
回到 Connection=>SSH,勾选 Don’t start as shell or command at all.
上面的配置完成后,点击 Open,应该会跳入如下的远程界面。
注意:如果本机已经安装了 Sql Server 数据库,需要现在 Service 中停掉本机的 SqlServer 服务,否则可能会造成端口冲突。
这时,你可以使用 SSMS 连接数据库服务了。
注意:SSMS 连接配置页面,Server name 必须是 127.0.0.1 而不是原本的数据库 host。
打开 Robo 3T,新建连接,并在 Connection 页面配置 mongo 的连接信息。
切至 SSH 页面,勾选 Use SSH Tunnel,输入跳板机的连接配置即可。
配置完成,Save 后连接即可。
其他例如Redis数据库,可以使用 Redis Desktop Manager SSH Tunnel 连接。