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
Примечания, которые могут быть полезны:
- Я могу подключиться через туннель SSH HeidiSQL.
- Я не могу установить соединение с помощью 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
Нашел ответ здесь: 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