mysql ssh隧道连接内网mysql

通过SSH隧道连接MySQL数据库

一.背景

问题所在:MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,数据安全如果只靠MySQL应用层面显然是不够的,虽然说MySQL实现的登录机制基本不存在泄露密码的风险,但是登录之后的SQL语句和执行结果的传输却都是明文传输的;

解决方案:出于数据库的安全性,数据库管理员在配置数据库时会为数据库增加一层“保护伞”,保护用户在连接数据库时的安全和信息不被泄漏,通常的做法就是通过SSH(SSH为一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell提供安全的传输和使用环境)隧道进行连接,也就是为数据库增加一个安全协议,这也导致了用户进行远程连接时的困难。

以下是通过ssh隧道连接的示意图:

0015c6baec0c129326d8498873395da

下面我们就介绍一下如何远程连接和通过SSH隧道连接滴滴云DC2中的MySQl数据库。

二.连接方法

本文操作均使用的滴滴云产品,所以操作过程中注意在"控制台"的"安全组"中设置好IP和端口的访问限制。

主机名角色IP端口
10-254-81-196MySQL主机115.11.22.9422/3306
10-255-0-218远程主机116.85.33.18522/3306/3307
2.1 Linux 普通远程连接

默认情况下,MySQL帐号不允许从远程登陆,只能在localhost登录,如按照普通方式远程连接MySQL,需要添加远程主机(116.85.33.185)的登录权限。

修改MySQL允许远程连接:

[root@10-254-81-196 dc2-user]# mysql -u root -p
 
## 本地登录MySQL;
 
Enter password:
 
## 输入MySQL密码;
 
mysql> grant all on *.* to root@'116.85.33.185' identified by 'pass4you';
 
# 允许root用户通过116.85.33.185访问数据库
 
mysql> flush privileges;

远程连接:

[root@10-255-0-218 dc2-user]# mysql -h 115.11.22.94 -P 3306 -u root -p    # 如果是秘钥就带上 -i 参数加xxx.pem秘钥
 
# 在DC2:10-255-0-218上通过3306端口远程连接DC2:10-254-81-196中的MySQL数据库;    
 
Enter password:
 
# 输入MySQL密码;
 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 7591
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MySQL [(none)]> 
# 远程连接成功。

2.2 Linux SSH隧道连接(推荐)

默认远程主机已安装MySQL;被连接MySQL不允许远程登录;

0015c6bb0090b3007328ca1fa5394e5

建立隧道:

[root@10-255-0-218 dc2-user]# ssh -fCPN -L 3307:127.0.0.1:3306 -p 22 dc2-user@115.11.22.94
# 在本地打开一个SSH的守护进程,该进程会监听本地的3307端口,这个端口为隧道的入口,当访问本地的3307端口时,数据包会通过ssh进程,发送到10-254-81-196的3306端口;
# -C    使用压缩功能,是可选的,加快速度;
# -P    用一个非特权端口进行出去的连接;
# -f    一旦SSH完成认证并建立port forwarding,则转入后台运行;
# -N    不执行远程命令.该参数在只打开转发端口时很有用(V2版本SSH支持);
The authenticity of host '115.11.22.94 (115.11.22.94)' can't be established.
ECDSA key fingerprint is SHA256:lmwBveuC78QBzZBIEDPXgoNI0J58cT8u9k4A3Yh6+wQ.
ECDSA key fingerprint is MD5:aa:34:00:e4:36:d3:a3:fd:08:4d:8f:62:01:50:6f:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '115.11.22.94' (ECDSA) to the list of known hosts.
 
dc2-user@115.11.22.94's password:
# 输入被远程主机10-254-81-196的主机密码;

连接数据库:

[root@10-255-0-218 dc2-user]# mysql -h 127.0.0.1 -P 3307 -u root -p
 
# 通过本地3307端口连接MySQL数据库;
 
Enter password:
 
# 输入MySQL密码;
 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 7581
Server version: 5.7.25 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MySQL [(none)]>
 
# 通过SSH隧道远程连接MySQL成功。

2.3 MAC 系统 SSH隧道连接(推荐)
默认远程主机已安装MySQL;被连接MySQL不允许远程登录;借助第三方工具Navicat for

安装软件

Navicat官方网站下载Navicat for MySQL软件,并安装。

创建新的连接

常规选项:

“连接名” 自定义填写; “主机” 填写回环地址; “端口” 填写MySQL数据库所启用的端口号; “密码” 填写MySQL数据库的密码;

SSH选项:

“使用SSH通道” 勾选; “主机” 填写DC2:10-254-81-196的公网IP; “端口” 填写SSH所启用的端口号; “用户名” 填写滴滴云DC2登录账号,注意只能为"dc2-user"; “密码” 填写DC2:10-254-81-196的主机密码;

yst_local ,内网登录的信息

在这里插入图片描述

登录ssh服务器隧道
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a8aa69af78643a4b7be702758f0da3c.png

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gitxuzan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值