共计 1536 个字符,预计需要花费 4 分钟才能阅读完成。
问题出现的环境:
系统及版本:Ubuntu 16.04 LTS
MySQL Workbench 版本:V6.3.8 及以上版本
错误信息:
Could not connect the SSH Tunnel
Authentication error, unhandled exception caught in in
tunnel manager, please refer to logs for details
问题出现的场景:
在 MySQL Workbench 下通过 SSH 隧道及 SSH 私钥文件认证来连接远程数据库,出错。
问题出现的可能原因:
当时对系统及 MySQL Workbench 同时作了升级操作。
解决问题:
解决过程略为复杂。
通过查看 Workbench 的运行日志,找到异常信息如下:
[ERR][sshtunnel.py:notify_exception_error:234]: Traceback (most recent call last):
File “/usr/share/mysql-workbench/sshtunnel.py”, line 302, in _connect_ssh
look_for_keys=True)
File “/usr/lib/Python2.7/dist-packages/paramiko/client.py”, line 325, in connect
t.start_client()
File “/usr/lib/python2.7/dist-packages/paramiko/transport.py”, line 492, in start_client
raise e
ValueError: CTR mode needs counter parameter, not IV
最终定位到与 python 第三方包 python-paramiko 有关。paramiko 是用 python 语言写的一个模块,遵循 SSH2 协议,支持以加密和认证的方式,进行远程服务器的连接。
之前未接触过 paramiko 包,所以我选择 Surfing on the internet, 搜索了一下,最后注意到有网友和我碰到的问题几乎是一样,只不过他的问题发生 2014 年,环境也比我的老。
最终我找到了这样一个回复:
[12 May 2016 11:35] Marcin Szalowicz
MySQL Workbench 6.3.7 will come with Paramiko 1.16.0 that has got support for more Ciphers.
In any case you can always try to use the latest Paramiko version which is described here:
根据提示,发现原来官方是有解决方案的。只不过没有那么直接。
直接说解决步骤吧:
1. 去网页 https://github.com/paramiko/paramiko/releases 下载最新的 paramiko 包最新的 2.1.1 版本并解压 tar -xvf
2. 用 sudo apt-get –purge remove python-paramiko 彻底清除旧版本的 paramiko
3. 进入解压好的 paramiko 路径并使用 sudo python setup.py install 来安装 paramiko
4. 注意:安装的过程中下载相关依赖包时可能会出现 404,没关系我们可以去 http://packages.ubuntu.com/zh-cn/xenial/amd64/libzip4/download 中搜索并下载需 要的依赖包并利用 sudo dpkg -i 来手动安装。
5. 安装完成后,重装 Mysql Workbench 就可以正常使用了。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140906.htm