云网牛站
所在位置:首页 > Linux云数据库 > 在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

2019-09-24 09:49:15作者:雷增线稿源:云网牛站

在本文中,我们将说明如何创建SSH隧道并从远程客户端连接到MySQL服务器,相同的说明也适用于MariaDB。默认情况下,MySQL服务器仅在localhost上侦听,这意味着它只能由在同一主机上运行的应用程序访问。但是,在某些情况下,你可能希望从远程位置连接到服务器,一种选择是将MySQL服务器配置为允许远程连接,但这需要管理权限,并且可能会带来安全风险,一种更安全的替代方法是创建从本地系统到服务器的SSH隧道,SSH隧道是一种在客户端和服务器计算机之间创建加密SSH连接的方法,通过该连接可以中继服务端口。

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

 

先决条件

1、SSH客户端。

2、通过SSH访问运行MySQL服务器的系统。

 

在Linux和macOS上创建SSH隧道

ssh客户端已预安装在大多数基于Linux和Unix的系统上。

如果你使用Linux或macOS作为操作系统,则可以使用以下命令创建SSH隧道:

$ ssh -N -L 3336:127.0.0.1:3306 [USER]@[SERVER_IP]

使用的选项如下:

1、-N-使SSH不要执行远程命令。

2、-L 3336:127.0.0.1:3306-创建本地端口转发,本地端口(3306),目标IP(127.0.0.1)和远程端口(3306)用冒号(:)分隔。

3、[USER]@[SERVER_IP]-远程SSH用户和服务器IP地址。

4、要在后台运行命令,请使用-f选项。

5、如果SSH服务器正在侦听22以外的端口(默认端口),请使用-p [PORT_NUMBER]选项指定端口。

运行命令后,系统将提示你输入SSH用户密码,输入后,你将登录到服务器,并建立SSH隧道,最好设置一个基于SSH密钥的身份验证并连接到服务器而无需输入密码。

现在,你可以将本地计算机MySQL客户端指向127.0.0.1:3336,输入远程数据库登录帐户并访问MySQL服务器。

例如,要使用命令行mysql客户端连接到MySQL服务器,运行:

$ mysql -u MYSQL_USER -p -h 127.0.0.1

其中,MYSQL_USER是具有访问数据库权限的远程MySQL用户。

出现提示时,输入MySQL用户密码。

要终止SSH隧道,请在运行ssh客户端的控制台中键入CTRL+C。

参考:安装与使用Mole在Linux CLI上创建SSH隧道的方法

 

在Windows上创建SSH隧道

Windows用户首先需要下载并安装SSH客户端程序,最受欢迎的Windows SSH客户端是PuTTY,参考在Ubuntu、Debian、Fedora、Arch Linux系统中安装Putty的方法

执行以下步骤以使用PuTTY创建到MySQL服务器的SSH隧道:

1、启动Putty,然后在主机名(或IP地址)字段中输入服务器的IP地址:

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

2、在“Connection”菜单下,展开“ SSH”,然后选择“Tunnels”,在“Source Port”字段中输入3306,在“Destination”字段中输入127.0.0.1:3306:

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

单击添加按钮添加隧道。

3、返回“Session”页面以保存设置,以便你无需再次输入设置。

在“Saved Session”字段中输入会话名称,然后单击“Save”按钮:

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

4、选择已保存的会话,然后单击“Open”按钮登录到远程服务器:

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

将显示一个新窗口,要求你输入用户名和密码,输入用户名和密码后,将登录到服务器,并创建SSH隧道。

设置公共密钥身份验证将使你无需输入密码即可连接到服务器。

现在,你可以使用本地MySQL客户端连接到远程数据库。

例如,如果你使用的是HeidiSQL,请在“Hostname / IP”字段中输入127.0.0.1,并在“User”和“Password”字段中输入MySQL用户和密码:

在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL

 

结论

MySQL是最流行的开源数据库服务器,仅在localhost上侦听传入的连接,创建SSH隧道可以使你从本地客户端安全地连接到远程MySQL服务器。

 

相关主题

安装和使用EasySSH在Linux上设置SSH连接的方法

精选文章
热门文章