PHP程序员

SSH通过私钥实现本地连上限制内网访问的MySQL

2020-08-24  本文已影响0人  php转go

线上数据库设置了IP白名单,只能是正式服务器的IP才能连接上数据库。
Navicat也可以通过SSH,先连接上服务器,再通过服务器连接到数据库,实现查看数据库的内容
但是有时正式服代码测试时,每次都要上传到正式环境才能实现。
为了解决这个问题,要通过SSH实现实现本地代码连上限制内网访问的MySQL

在当前用户的根目录,找到.ssh目录
创建配置文件config,不要后缀名,配置好私钥

Host zhan
    HostName zhan666.cn
    User root
    IdentityFile ~/.ssh/zhan33
Host zhan666
    HostName www.zhan666.cn
    User root
    IdentityFile ~/.ssh/zhan66

执行指令

C:\Users\A>ssh -L 3307:127.0.0.1:3306 zhan
Last login: Mon Aug 17 16:00:19 2020 from 59.41.93.65
[root@VM_0_2_centos ~]# 

或者

ssh -NC root@www.test.com -L 3307:127.0.0.1:3306 -i ./test.pem

表明已经连接上服务器了,并且把本地的3307端口映射成服务器上面的3306端口

此时,在本地配置文件

    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.01', #这里填写内网IP
    // 数据库名
    'database'        => "test",
    // 用户名
    'username'        => 'root',
    // 密码
    'password'        => '123456',
    //端口 
   'hostport'        => '3307', #映射的端口

这里实际上连接的数据库就是服务器上面的数据库了

关闭映射,登录后,进行logout

C:\Users\A>ssh -L 3307:127.0.0.1:3306 zhan666
Last login: Mon Aug 17 16:36:22 2020 from 59.41.93.65
[root@VM_0_2_centos ~]# logout
Connection to www.zhan666.cn closed.

关闭后,本地的代码,Navicat都不能通过3307端口登录上MySQL了

上一篇下一篇

猜你喜欢

热点阅读