MySQL Workbench(版本 6.0.8)SSH 身份验证问题

Posted

技术标签:

【中文标题】MySQL Workbench(版本 6.0.8)SSH 身份验证问题【英文标题】:MySQL Workbench (version 6.0.8) SSH Authentication Issue 【发布时间】:2014-02-26 23:04:57 【问题描述】:

我正在尝试通过机器 Y 通过 SSH 连接到主机 X 上的 mysql 服务器。

相同的设置(但 MySQL 工作台的旧版本)适用于我的另一个机器(CentOS 6.3)。

但是,相同的设置不适用于我的 CentOS 6.5。

我尝试使用 SSH 密钥在我的盒子和机器 Y 之间通过 SSH 进行身份验证,当我从盒子 ssh 到机器 Y 时它可以工作。

但是,MySQL 工作台给了我以下错误: 错误无法建立 SSH 连接:身份验证类型错误 (allowed_types=['publickey', 'gssapi-with-mic'])。

有人建议我在 /etc/ssh/sshd_config 中将 AllowTcpForwarding 设置为 yes,我这样做了,重新启动了服务并重新启动了我的机器。

但我仍然遇到同样的错误。

有什么想法吗?

似乎由于某种原因,当 MySQL 工作台尝试连接时,.ssh/id_dsa 密钥没有被拾取。

提前致谢。

【问题讨论】:

MySQL Workbench 不会自动获取 id_rsa。你在连接设置里设置了吗? 嗯...我认为会是因为旧版本 (5.x) 会。无论如何,我试图指定私钥文件,它给了我同样的错误。 在新计算机上使用 MySQL Workbench 时,我们一直在努力解决同样的问题。我们的服务器配置为仅接受带有密钥文件身份验证的 ssh。而 MySQL 似乎最初完全忽略了 SSH Key File 参数。有时似乎有帮助的方法是通过 Mac 上的终端或 Windows 上的 cygwin 让用户 SSH 进入。出于某种原因,在那之后,MySQL 工作台似乎可以工作。我不知道为什么。到目前为止提供的解决方案都没有效果。 【参考方案1】:

您需要确保您的私钥是 openssh 格式。使用 puttygen,您可以导出为 Openssh。这对我有用。

【讨论】:

完美答案... 将密钥加载到 puttykeygen,转换 > 导出 OPENSSH 密钥 在 MobaXterm 中也可用。工具 -> MobaKeyGen -> 加载密钥文件 -> 导出 OPENSSH 密钥 像魅力一样为我工作。非常感谢。【参考方案2】:

将其转换为 OpenSSH 可解决此问题。只需执行以下操作:

    打开 Putty 密钥生成器。 通过从保存私钥文件的位置转到文件 - > 私钥来加载私钥 - 您应该会看到在 Putty 中加载了您的密钥。 现在转到对话并导出到 Openssh - 将文件保存在安全位置。 转到 Workbench 并在 SSH 密钥文件下将其指向新的 Openssh 文件,而不是旧的私钥文件。这应该可以解决您的问题。

【讨论】:

【参考方案3】:

我最近又遇到了这个问题。如果您使用受密码保护的私钥并且您刚刚升级到 macOS Sierra,您可能需要再次将您的私钥重新添加到您的钥匙串中。

ssh-add -K ~/.ssh/id_rsa

这立即为我解决了问题。

【讨论】:

这已为我修复,MacOS High Sierra,v10.13.4 我的 id_rsa 密钥受密码保护。 似乎 Mysql Workbench 会自动选择 id_rsa 键,即使您指定了不同的键。【参考方案4】:

对于使用 ssh-keygen 的 Linux 用户:

根据其他答案,您需要使用 openssh 格式。

ssh-keygen -o -b 4096

这给了我一个新的密钥对 RSA 类型 4096 位的 openssh 格式。 -o 是这里的关键(不是双关语)。

显然,这会生成一个 密钥,因此只有在您可以将新公钥上传到服务器时才有用。不要忘记先备份旧密钥,以防您在其他地方使用它们。

AFAIK ssh-keygen 无法转换现有密钥。

为什么 Oracle 放弃了对普遍存在的 PEM 格式的支持,我无法理解。

【讨论】:

【参考方案5】:

我在使用 Navicat 和 MySQL Workbench 的 macos 上遇到了同样的问题。感谢乔纳森this article

解决我的问题。 Macos用户首先需要安装puttygen,然后通过Jonathan在他的教程中说的将ppk格式转换为pem,然后是TADA!一切都像魅力一样!

【讨论】:

【参考方案6】:

我花了 3-4 天的时间来弄清楚并尝试了许多不同的解决方案,但除了以下之外,没有一个对我有用。

我在 Windows 上使用 XAMPP 运行 MySQL 和 localhost。我在我的机器上停止了这两个服务,然后尝试使用 Workbench 及其连接的 SSL 连接。

【讨论】:

【参考方案7】:

对于 linux,通常对于工作台,它必须是 pkcs8 格式而不是 rfc...

所以以 OpenSSH 格式导出,但以 pkcs8 格式导出

【讨论】:

我在 Ubuntu 上遇到了这个问题。如何将密钥文件转换为 PKCS#8? 一般可以在导出命令中选择格式 是的,但是 PKCS#8 的关键字是什么?我四处寻找,但没有发现任何有用的东西。我正在使用这个命令:puttygen key-fil -O private-openssh -o new-key.pem。我应该使用什么来代替 private-openssh? 对不起,我使用的是可执行版本,也许你可以在 gui 中使用 open ssh 并选择导出【参考方案8】:

对我来说,它使用 .pem 扩展密钥。 由于我只有 ppk 密钥,我必须将 .ppk 转换为 .gem。

为了改造它,我使用了在 ubuntu 终端吃东西:

$ puttygen key.ppk -O private-openssh -o key.pem

【讨论】:

【参考方案9】:

在 Mac OS 上,请执行以下操作,因为这是唯一对我有用的 -:

第 1 步

brew install putty

第 2 步

puttygen id_rsa -O private-openssh -o id_rsa.pem

第 3 步 - 在 MySQL 工作台中

SSH Key File: /Users/local/.ssh/id_rsa.pem

【讨论】:

以上是关于MySQL Workbench(版本 6.0.8)SSH 身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql workbench ssl连接问题

怎样安装Mysql Workbench

MySQL workbench 界面显示语言怎么设置成中文

mysql workbench 安装

Mysql Workbench的使用(亲测)

无法通过 Workbench 连接到 RDS MySQL 数据库