我正试图通过机器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键。
提前致谢。
答案 0 :(得分:40)
您需要确保您的私钥是openssh格式。使用puttygen,您可以导出为Openssh。这对我有用。
答案 1 :(得分:13)
将其转换为OpenSSH解决了这个问题。只需执行以下操作:
答案 2 :(得分:9)
我最近又遇到过这个问题。如果您使用受密码保护的私钥,并且刚刚升级到macOS Sierra,则可能需要再次将私钥重新添加到钥匙串中。
ssh-add -K ~/.ssh/id_rsa
这立即解决了我的问题。
答案 3 :(得分:2)
在 Mac OS 上,请执行以下操作,因为这是唯一对我有用的方法 -:
第一步
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
答案 4 :(得分:0)
对于使用ssh-keygen的Linux用户:
根据其他答案,您需要使用openssh格式。
qpdf
这给了我一个新的密钥对RSA类型的4096位RSA格式的openssh格式。这是ssh-keygen -o -b 4096
的关键(没有双关语)。
显然,这会生成一个 new 密钥,因此仅当您可以将新的公共密钥上载到服务器时才有用。不要忘记先备份旧密钥,以防您在其他地方使用它们。
AFAIK ssh-keygen无法转换现有密钥。
为什么Oracle不再支持无处不在的PEM格式?
答案 5 :(得分:0)
我在使用Navicat和MySQL Workbench的macOS上遇到了相同的问题。感谢乔纳森(this article
)弄清楚我的问题。 Macos用户首先需要安装puttygen,然后通过乔纳森(Jonathan)在其教程中所说的将Ppk格式转换为pem,然后是TADA!一切都像魅力一样!
答案 6 :(得分:0)
我花了3-4天的时间来弄清楚并尝试了许多不同的解决方案,但是除了关注之外,没有一个对我有用。
我在Windows上,使用XAMPP运行MySQL和localhost。我在机器上停止了这两个服务,然后尝试使用Workbench及其连接的SSL连接进行连接。
答案 7 :(得分:0)
对于linux,通常对于工作台,它必须为rfc的pkcs8格式...
因此以OpenSSH格式导出,但以pkcs8格式导出
答案 8 :(得分:0)
对我来说,它使用.pem扩展名起作用。 因为只有ppk密钥,所以我不得不将.ppk转换为.gem。
要进行转换,我在ubuntu终端中使用了进餐:
$ puttygen key.ppk -O private-openssh -o key.pem