Ubuntu16.04上MySQL Workbench6.3无法通过Standard TCP/IP over SSH连接数据库

今天发生了一个奇怪的问题,以前一直通过MySQL Workbench使用Standard TCP/IP over SSH方式连接非外网环境的MySQL,怎么今天突然就无法连上了,看了下~/.mysql/workbench/log/wb.log,发现出现以下错误:

22:00:59 [ERR][sshtunnel.py:notify_exception_error:233]: Traceback (most recent call last):
  File "/usr/share/mysql-workbench/sshtunnel.py", line 298, in _connect_ssh
    look_for_keys=has_key, allow_agent=has_key)
  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

22:00:59 [INF][     SSH tunnel]: TunnelManager.wait_connection authentication error: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
22:00:59 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details

关键是ValueError: CTR mode needs counter parameter, not IV这个错误以前一直没报错啊。

查看了google上相关的问题,基本各种情况都有,我想了会,为什么以前是好的呢?

最大的可能还是出在系统更新上,我比较喜欢更新到最新的版本,google到一些问题都是paramiko库版本的原因,于是我决定更新paramiko到最新的版本。

我发现在我自己的机器上,pip install paramiko只能安装默认的1.16.0版本,去paramiko的官网查了下发布版本(https://github.com/paramiko/paramiko/releases),发现最新的已经到2.1.1了,于是我先卸载掉以前的paramiko

sudo pip uninstall paramiko

再指定最新的版本安装

sudo pip -v install paramiko==2.1.1

接着重新打开MySQL Workbench,并观察日志,一切都正常了。

Show Comments