我有一个只能通过SSH访问的服务器,我在此服务器上安装了MySQL。并创建了一个远程用户,以便我可以使用mySQL工作台进行开发,但当尝试使用MySQL工作台GUI进行SSH时,我收到以下错误:无法连接可继续使用公钥的SSH隧道身份验证。
我能够从服务器本身连接到用户,并且没有任何问题,我已经检查了权限,远程访问似乎已为此用户激活:
+------------------+-----------+
| user | host |
+------------------+-----------+
| developer | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
我填写了以下内容:
SSH Hostname <server-IP>
SSH username root
SSH password <clear>
SSH Key File <privat key file>
MySQL Hostname 127.0.0.1
MySQL Server Port 3306
Username <user>
Password <password>
Default Schema <empty>
7条答案
按热度按时间0dxa2lsx1#
我在连接MySQL时也遇到了类似的问题,我想分享我的解决方案,以防其他人在这里结束。
该问题发生在两种不同的场景中。
情景一:我使用服务器生成的私钥成功访问了MySQL数据库(我使用的是CPanel)。我从服务器中删除了相应的公钥(错误地),然后尝试重新连接并收到错误。
这里的解决方案当然是重新生成密钥。
情景二:我尝试使用OpenSSH生成的私钥访问MySQL数据库。我将密钥的位置设置为C:/Users/username/. ssh/id_rsa,但收到错误。
这里的解决方案是将OpenSSH私钥转换为RSA私钥。
确保事先备份OpenSSH私钥,因为这将覆盖id_rsa。
然后,我可以使用RSA私钥连接到MySQL服务器。
您可以在任何文本编辑器中查看这两种类型的密钥,并阅读第一行,它将显示OPENSSH或RSA。
hsvhsicv2#
对于那些像我一样试图通过PuTTY生成的SSH密钥进行连接的人:
1.用PuTTYGen打开私钥。它会询问私钥密码。
1.转到转换-〉导出OpenSSH密钥菜单。
1.它会询问要分配给转换后的OpenSSH密钥的文件名,给予它一个不同于PuTTY私钥的名称。
1.在MySQL Workbench中使用转换后的密钥作为“SSH密钥文件”。当系统提示时,输入私钥密码。
1.此时应连接。
pkbketx93#
对我来说,实际上是相反的-我的密钥是RSA私钥,必须将其转换为OpenSSH。然后MySQL Workbench成功连接。我猜无论谁有类似的问题,都不需要尝试转换私钥。
jq6vz3qz4#
在我的例子中,当我选择
id_rsa.pub
而不是id_rsa
时出现了问题,所以当我选择id_rsa
时,问题消失了!uurity8g5#
对于我的情况,使用mysql workbench 8.0需要new openssh keyformat。所以当你生成openssh format时,确保你生成了新的format,然后为sshkey提供了那个key
nfg76nw06#
对我来说,这与user:group有关。我没有将文件设置为root:root,而是对localuser:localuser做了一个chown,它工作得很好。
bmp9r5qi7#
我不得不从密钥文件中删除密码短语,以允许MySQL Workbench使用它。