使用场景:

1、MySQL数据库的管理员账号只允许本地登录

2、应用程序连接账号只允许程序部署服务器所属IP地址连接

实现方法:

客户端工具通过无密码SSH密钥对连接到MySQL数据库所在服务器,再通过数据库相应的账号在服务器本地登录。

1、安装ssh相关程序包

yum -y install openssh-clients   #ssh-copy-id命令

2、在本地机器上使用ssh-keygen产生公钥私钥对

[root@cos68srv~]$ ssh-keygen

3、用ssh-copy-id将公钥复制到远程机器中

-i:指定公钥文件

#pgmaster1

[root @cos68srv~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

4、将root用户私钥下载保存在本地

便于管理按照IP地址分类命名,同时放到Navicat工具的rsa_keys目录下

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库_第1张图片

5、登录到远程机器不用输入密码

数据库存在管理员账号sysadmin,但只能在本地服务器登录

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库_第2张图片

 

打开Navicat工具连接远程MySQL服务

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库_第3张图片

在“常规”页面按正常连接MySQL服务的配置填写,只是地址使用localhost/127.0.0.1

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库_第4张图片

在“SSH”页面填写MySQL数据库所属服务器地址,系统登录账号(为了系统安全也可使用其他具有登录权限的用户),验证方法选择“公钥”,在“私钥”出选择上述下载保存的私钥文件,密码短语随便填写,选中“保存密码短语”即可。

Windows平台使用Navicat for MySQL通过SSH密钥认证连接远程MySQL数据库_第5张图片


测试成功。