mysql无法连接SSH隧道->访问因“无”而被拒绝

huus2vyu  于 2023-02-03  发布在  Mysql
关注(0)|答案(7)|浏览(347)

我有一个只能通过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>
0dxa2lsx

0dxa2lsx1#

我在连接MySQL时也遇到了类似的问题,我想分享我的解决方案,以防其他人在这里结束。
该问题发生在两种不同的场景中。
情景一:我使用服务器生成的私钥成功访问了MySQL数据库(我使用的是CPanel)。我从服务器中删除了相应的公钥(错误地),然后尝试重新连接并收到错误。
这里的解决方案当然是重新生成密钥。
情景二:我尝试使用OpenSSH生成的私钥访问MySQL数据库。我将密钥的位置设置为C:/Users/username/. ssh/id_rsa,但收到错误。
这里的解决方案是将OpenSSH私钥转换为RSA私钥。

ssh-keygen -p -m PEM -f C:/Users/username/.ssh/id_rsa

确保事先备份OpenSSH私钥,因为这将覆盖id_rsa。
然后,我可以使用RSA私钥连接到MySQL服务器。
您可以在任何文本编辑器中查看这两种类型的密钥,并阅读第一行,它将显示OPENSSH或RSA。

hsvhsicv

hsvhsicv2#

对于那些像我一样试图通过PuTTY生成的SSH密钥进行连接的人:
1.用PuTTYGen打开私钥。它会询问私钥密码。
1.转到转换-〉导出OpenSSH密钥菜单。
1.它会询问要分配给转换后的OpenSSH密钥的文件名,给予它一个不同于PuTTY私钥的名称。
1.在MySQL Workbench中使用转换后的密钥作为“SSH密钥文件”。当系统提示时,输入私钥密码。
1.此时应连接。

pkbketx9

pkbketx93#

对我来说,实际上是相反的-我的密钥是RSA私钥,必须将其转换为OpenSSH。然后MySQL Workbench成功连接。我猜无论谁有类似的问题,都不需要尝试转换私钥。

jq6vz3qz

jq6vz3qz4#

在我的例子中,当我选择id_rsa.pub而不是id_rsa时出现了问题,所以当我选择id_rsa时,问题消失了!

uurity8g

uurity8g5#

对于我的情况,使用mysql workbench 8.0需要new openssh keyformat。所以当你生成openssh format时,确保你生成了新的format,然后为sshkey提供了那个key

nfg76nw0

nfg76nw06#

对我来说,这与user:group有关。我没有将文件设置为root:root,而是对localuser:localuser做了一个chown,它工作得很好。

bmp9r5qi

bmp9r5qi7#

我不得不从密钥文件中删除密码短语,以允许MySQL Workbench使用它。

相关问题