我在这里遇到一个奇怪的问题......
我的数据库位于 AWS EC2 中,我习惯使用 MySql Workbenh 通过 SSH 连接到它。为此,我生成了一个受密码保护的 ppk 文件在 ubuntu 16.04 上使用puttygen
,运行良好。
但更新后,使用相同的配置,我收到此错误消息:
无法连接 SSH 隧道
身份验证错误。请检查您的用户名和密码是否正确,然后重试。详细信息(原始异常消息):身份验证类型错误,服务器不接受此类身份验证。允许的身份验证类型为:[u'publickey']
因此,通过 Google 搜索,我发现这两个人有同样的问题:这, 和这。
提出的解决方案是生成一个公共开放SSH文件并使用它,然后我做了:
puttygen myKey.ppk -O public-openssh -o myKey.ppk
问题还是一样!我不确定 Workbench 更新(现在是 6.3.10 版本)是否导致了这个问题,但在此之前我可以毫无问题地连接。我可以通过 ubuntu 终端中的 ssh 正常连接到服务器。
我可以做什么?
- 操作系统:Ubuntu 16.04
- MySql:版本 14.14 发行版 5.7.21
- MySql Workbench:CE(GPL)6.3.10
答案1
经过大量研究,我可以解决这个问题。我找到了这个主题:https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via-ssh-due-to-key/38108623 上面说我无法导出带密码的私有 ppk 文件。因此,在 Ubuntu 中,我使用 puttygen 从我的 pem 密钥生成了一个没有密码的私有 ppk 文件,并从中生成了 private-openssh 文件。
我尝试在工作台上连接,但...没成功!但我又收到另一个错误,它显示:不是有效的私有 OPENSSH 密钥。
因此,此时我意识到网络上大多数遇到类似问题并能解决问题的人都使用 Windows。然后,由于我的机器有双启动,我在 Windows 中安装了 Putty 并在那里生成密钥。所以,它成功了!(从没有密码的 ppk 生成,受密码保护的那个不起作用)。
如果有人遇到同样的问题,请尝试一下无密码的私人 ppk,生成一个私人 openssh 在 Windows Putty 中。