MySQL Workbench 在 MacOS Sierra 上抱怨 pkcs1_15 加密

MySQL Workbench on MacOS Sierra Complaining About pkcs1_15 crypto

在 MacOS Sierra 上尝试通过 标准 TCP/IP 通过 SSH 进行连接时出现以下错误:

Authentication error, unhandled exception caught in
tunnel manager, please refer to logs for details

Google 告诉我这个错误消息是在 2015/2016 年遇到的,与当时与 Workbench 捆绑在一起的过时的 paramiko 有关。我查看了日志 (~/Library/Application Support/MySQL/Workbench/log/wb.log),发现了一个与 2015/2016 年报告的错误不同的错误:

13:24:46 [INF][     SSH tunnel]: Opening SSH tunnel to myproxy.example.com
13:24:47 [ERR][sshtunnel.py:notify_exception_error:235]: Traceback (most recent call last):
  File "/Applications/MySQLWorkbench.app/Contents/Resources/sshtunnel.py", line 303, in _connect_ssh
    look_for_keys=has_key, allow_agent=has_key, timeout=SSH_CONNECTION_TIMEOUT)
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 325, in connect
    t.start_client()
  File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/transport.py", line 492, in start_client
    raise e
NotImplementedError: Use module Crypto.Signature.pkcs1_15 instead

有人 运行 解决了这个问题并找到了解决方法吗?

目前正在使用:

更新

在尝试将更新的 paramiko (2.2.1) 版本放入 Applications/MySQLWorkbench.app/Contents/Resources/Libraries/paramiko 后,它现在提供一个错误,指出它无法使用以下日志启动 SSH 隧道:

13:46:07 [INF][     SSH tunnel]: Starting tunnel
13:46:07 [ERR][         python]: Error running file /Applications/MySQLWorkbench.app/Contents/Resources/sshtunnel.py
13:46:07 [WRN][               ]: Tunnel manager could not be executed

尝试使用最新的 1.x 版本的 paramiko (1.18.3) 它提供与上述相同的 Crypto.Signature。pkcs1_15 错误。

服务器支持的密钥交换是:

diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
diffie-hellman-group-exchange-sha1
diffie-hellman-group-exchange-sha256
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group1-sha1
curve25519-sha256@libssh.org
gss-gex-sha1-
gss-group1-sha1-
gss-group14-sha1-

我的解决方案:

我安装了 MySQL Workbench 6.3(但实际上是 6.3.4.0 build 828)。从 MySQL Workbench,我会转到“帮助”->“检查更新”,它总是说我使用的是最新版本。

阅读此帖后:https://serverfault.com/questions/692060/mysql-workbench-with-debian-jessie-tcp-ip-over-ssh-does-not-work

我尝试了各种 paramiko 更新,没有运气。

最后,我去了这里:https://dev.mysql.com/downloads/workbench/

然后我看到 v6.3.9(内部版本 10690321)可用。所以我下载,安装,然后就可以连接了。

看来更新 Paramiko 确实是让 SSH 隧道在 Workbench 中正常工作的关键。安装 Paramiko 2.2.1(当时最新)及其依赖项并删除捆绑的 Paramiko 使其正常工作。如果您按照以下步骤操作,这对我来说适用于 MacOS Sierra (10.12.6)。

  1. 确保您已 pip 安装
  2. 通过 pip 安装 paramiko
  3. 从 Workbench 个库中删除 paramiko 目录
  4. 使用工作 SSH 隧道功能启动Workbench

sudo easy_install pip
sudo pip install paramiko
sudo mv /Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko /Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko-old