【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name

来源:csdn博客 分类: 文章浏览史 发布时间:2023-02-28 19:44:11 最后更新:2023-02-28 浏览:159
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2023-02-28 19:44:11

之前一直用Navicat for Mysql 10.1.7版本,一直感觉挺好用。这两天需要用ssh tunnel、密钥方式连接一个远程数据库,对方服务器系统是centos8,结果不行了。

首先选择了私钥文件之后,navicat提示“80070007: SSH Tunnel: Wrong data format”错误。这个私钥文件我在Xshell上面登录的时候是完全没有问题的。

百度百度查了一堆,没有找到什么有关的,好吧只能慢慢试。

看到有人说Navicat版本太低的问题,那先尝试更新Navicat到15。

这时再试又有新问题,选择私钥之后提示“Unable to load key - unrecognised cipher name”。

百度百度查了一堆,和“unrecognised cipher name”有关的查不到什么内容,和“Unable to load key”有关的倒是不少。

大部分是说让人用Putty转一下私钥文件格式,试了一下,没有cipher错误了,但是出了其他错误,对方不认加密格式,遂放弃。

后来找到这条博文navicat 报错: unable to load key

里面提到新版本openssh产生的私钥文件是以“-----BEGIN OPENSSH PRIVATE KEY-----”开头,而老版是以“-----BEGIN RSA PRIVATE KEY-----”开头。我一看,确实。
这下终于解决了,说下解决方法:先找到centos服务器里面原来的私钥文件,然后在服务器里使用这条指令转一下原来那个私钥文件的格式

ssh-keygen -p -N "" -m pem -f /path/to/file

你会发现私钥文件的开头变成RSA那个格式了,再拿这个文件去navicat里面连接,就OK了

 

吐槽:navicat竟然连这个都还不支持,有点奇怪啊

php技术微信