将远程Linux的mysql映射到windows本地
文章目录
远程linux服务器不给mysql外网访问权限的情况,通过ssh访问,并映射到windows本地.
我百度了一圈,没有找到winddows直接映射的方案.只有linux映射Linux.
不过win10有个内置linux子系统,通过这个映射
linux服务器
无需设置,只要它本地能访问mysql即可.
win10
ssh是密码登陆的
如果linux服务器ssh是用户密码登陆,直接一条指令解决.
ssh -fNg -L 3307:127.0.0.1:3306 myuser@remotehost.com
这样通过 127.0.0.1 3307端口访问linux服务器的mysql,
mysql的用户密码也是远程的.
ssh是密钥登陆的
这个密钥文件登陆有点麻烦
linux子系统开始一直连接不上.
提示key文件权限太高. 但是用chmod命令无法降低权限.
后面再贴吧前辈指点下
1, 将key文件访问 ~/.ssh/ 目录
2,chmod 400 key文件
3,试试
yake@yake-pc:~/.ssh$ ssh -i ssh.txt root@rcon.getce.cn
Last login: Sun Jul 12 17:55:49 2020 from 182.111.165.24
可以登陆了
映射mysql
在linux子系统输入
ssh -i ~/.ssh/ssh.txt -fNg -L 3307:127.0.0.1:3306 root@www.getce.cn
注意这条命令输入完直接结束.没有提示.
但是你本地mysql工具连接你就会发现可以连接了.
安全性
前面是用的root用户,这是不安全的.
远程新建一个用户
useradd mysql_nologin
远程切换用户
su -l mysql_nologin
远程新建文件夹
mkdir ~/.ssh
chmod 700 ~/.ssh
注意权限非常重要,只能700.
本地新建证书
步骤省略
用ssh-keygen生成,实际上你服务器上生成也可以.
拷贝公钥.
远程新建登陆证书授权文件
vi ~/.ssh/authorized_keys #将公钥粘贴进去,并保存
chmod 600 ~/.ssh/authorized_keys
注意权限非常重要,只能600.
本地试试证书登陆.
本步骤省略
降低远程用户权限
usermod -s /sbin/nologin mysql_nologin
这样就有了一个低权限用户,而且需要证书登陆.安全性还可以.
参考
https://blog.csdn.net/yilukuangpao/article/details/79225295
https://blog.csdn.net/bee100/article/details/83599417
https://www.oschina.net/question/1395553_221348