linux mysql ssh通道,如何通过SSH tunnel隧道连接到MySQL

默认情况下,MySQL服务器仅在localhost上侦听,这意味着它只能由在同一主机上运行的应用程序访问。

但是,在某些情况下,您可能希望从远程位置连接到服务器。一种选择是将MySQL服务器配置为允许远程连接,但这需要管理权限,并且可能会导致安全风险。

一种更安全的替代方法是创建从本地系统到服务器的SSH隧道。 SSH隧道是一种在客户端和服务器之间创建加密的SSH连接的方法,通过该连接可以中继服务端口。

在本指南中,我们将说明如何创建SSH隧道并从远程客户端连接到MySQL服务器。相同的说明适用于MariaDB。

先决条件SSH客户端。

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

在Linux和macOS上创建SSH隧道

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

如果您使用Linux或macOS作为操作系统,则可以使用以下命令创建SSH隧道:ssh -N -L 3336:127.0.0.1:3306 [USER]@[SERVER_IP]

使用的选项如下:-N-告诉SSH不要执行远程命令。

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

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

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

如果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。

在Windows上创建SSH隧道

Windows用户首先需要下载并安装SSH客户端程序。最受欢迎的Windows SSH客户端是PuTTY。您可以在此处下载PuTTY

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

启动PuTTY,然后在Host name (or IP address)字段中输入服务器的IP地址

在Connection菜单下,展开SSH并选择Tunnels。在Source Port字段中输入3306,在Destination字段中输入127.0.0.1:3306:

单击Add按钮添加隧道。

返回到Session页面以保存设置这样就无需再次输入它们。

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

选择保存的会话,然后通过单击Open按钮。

一个新窗口询问您的用户名和密码将显示出来。输入用户名和密码后,您将登录到服务器,并创建SSH隧道。

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

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

例如,如果您使用的是HeidiSQL,则在Hostname/IP字段中输入127.0.0.1,在User和Password​​字段中输入MySQL用户和密码:

结论

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

如果您有任何疑问,请在下面发表评论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SSH Tunnel 是一种网络隧道技术,可以通过安全的 SSH 连接来转发数据。它可以用来将本地网络连接到远程网络,或者将远程网络连接到本地网络。这种技术常用于远程访问内部网络中的资源,或者将本地网络中的资源暴露给远程网络。 ### 回答2: SSH隧道是一种通过SSH协议建立的加密通信隧道,用于安全地传输数据。它通过将数据包封装在SSH连接中进行传输,使得传输的数据在网络中被加密,从而保护数据的安全性。 SSH隧道的工作原理是将源主机和目标主机之间的通信数据包封装在SSH连接中,然后通过SSH连接进行传输。在建立SSH隧道时,需要指定一个本地端口和一个远程端口。源主机将本地端口的数据包封装在SSH连接中发送到目标主机的远程端口,然后目标主机将接收到的数据包解封并将其传递给目标主机上的本地端口。 通过SSH隧道,可以实现多种用途。一种常见的用途是加密和保护远程访问,例如通过SSH隧道远程登录到另一台计算机,并在加密的通道上执行命令和传输文件。另一种用途是绕过防火墙和过滤器,通过SSH隧道将数据转发到目标主机上的本地端口,可以实现对被阻止访问的网站、服务或应用程序的访问。 总而言之,SSH隧道提供了一个安全的通信通道,通过对数据进行加密,保护了数据的安全性和完整性。它可以用于实现远程访问和数据转发等功能,为网络通信提供了更高的保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值