MySQL Workbench не удалось подключиться к серверу через SSH туннель после обновления сервера до Ubuntu 16.04

У меня было активное соединение в MySQL Workbench с моим Ubuntu 14.04 через ssh туннель в течение последних двух лет без каких-либо проблем. Но после обновления Ubuntu до 16.04 я получаю следующую ошибку:

13:41:56 [INF][     SSH tunnel]: Starting tunnel
13:41:56 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
13:42:03 [INF][     SSH tunnel]: Opening SSH tunnel to xxx.xxx.xxx.xxx:22
13:42:03 [INF][     SSH tunnel]: TunnelManager.wait_connection authentication error: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
13:42:03 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details

Примечания, которые могут быть полезны:

  1. Я могу подключиться через туннель SSH HeidiSQL.
  2. Я не могу установить соединение с помощью Navicat и продолжаю получать SSH:expected key exchange group packet from server,

Я много читал, чтобы решить эту проблему, некоторые предложения здесь:

  • создать новый ключ SSH на сервере,
  • добавить KexAlgorithms в конец sshd_config,
  • обновить пакет paramiko из рабочей среды Python.

Я благодарен за любую помощь, которую вы окажете.

3 ответа

Решение

После проверки проблемы и попытки воспроизвести проблемы на других компьютерах и подключенных успешно. Я узнал кое-как, как проблема вызвана кэшированием известного хоста ssh.

Я удаляю папку под user\application data\roaming\mysql\workbench\ssh\ но проблема остается.

Для окончательной попытки я удаляю MySql Workbench и удаляю папку с настройками, упомянутую ранее, и устанавливаю недавно загруженную версию MySql Workbench. К счастью, все работает нормально.

Я решил эту проблему путем понижения пакета python-crypto в Ubuntu 16.04. Откат версии 2.6.1-6ubuntu0.16.04.2 до 2.6.1-6build1 с помощью команды ниже.

sudo apt-get install  python-crypto=2.6.1-6build1

ref: https://forums.mysql.com/read.php?152,655178,655194

Нашел ответ здесь: https://stackoverflow.com/a/26584947/5201045

Пожалуйста, используйте уровень DEBUG3. Затем вы увидите список алгоритмов обмена ключами, настроенных на вашем сервере, а также список поддерживаемых вашим клиентом.

Затем добавьте следующую строку в ваш /etc/ssh/sshd_config:

KexAlgorithms <here comma-separated list of Kex Algorithms configured on your server>,<here one of the Kex Algorithms supported by your client>

Например, в OpenSSH 6.7 по умолчанию активны следующие алгоритмы: curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256, Диффи-Хеллмана-group14-sha1.

Если ваш клиент поддерживает только diffie-hellman-group1-sha1, тогда ваш /etc/ssh/sshd_config должен содержать

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

Это нормально - OpenSSH v.6.7 также поддерживает diffie-hellman-group1-sha1, однако по умолчанию он отключен. Вы должны разрешить sshd использовать этот алгоритм обмена ключами, добавив строку KexAlgorithms в вашу конфигурацию sshd.

Кредиты Николаю

Дополнение: перезапустите службу ssh после

#/etc/init.d/ssh restart
Другие вопросы по тегам