Вопрос или проблема
Я пытаюсь подключить свою базу данных на своем экземпляре EC2, работающем на Ubuntu 16.04, с помощью Navicat. Но у меня постоянно возникает ошибка SSH: ожидался пакет группы обмена ключами от сервера.
У меня есть другой экземпляр, работающий на Ubuntu 14.04, там у меня активное подключение с тем же публичным ключом. Я пробовал использовать MySQL Workbench, и он также работает с обоими экземплярами. Похоже, что Navicat не работает только на экземпляре 16.04.
В чем может быть проблема?
Это ошибка Navicat 11 на Ubuntu 16.04. Попробуйте использовать другую версию Navicat, даже Navicat 9 должен работать хорошо.
Это не совсем ошибка. Попробуйте добавить следующее в /etc/ssh/sshd_config:
KexAlgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
Ответ или решение
Проблема, с которой вы столкнулись — это ошибка SSH: expected key exchange group packet from server
, возникает из-за несовместимости между версией SSH-сервера на вашем экземпляре Ubuntu 16.04 и версией Navicat, которую вы используете. В частности, Navicat 11 иногда не может корректно обрабатывать новые алгоритмы обмена ключами, которые были внедрены в более поздние версии SSH.
Вот несколько шагов, которые вы можете предпринять для решения этой проблемы:
-
Обновите Navicat: Если возможно, попробуйте использовать более новую версию Navicat. Например, Navicat 12 или выше. Это поможет избежать проблем с несовместимостью.
-
Измените конфигурацию SSH:
Если вы хотите продолжить использовать Navicat 11, можно изменить алгоритмы, используемые вашим SSH-сервером. Для этого выполните следующие шаги:-
Откройте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
-
Найдите строку, начинающуюся с
KexAlgorithms
(если её нет, добавьте новую строку) и измените или добавьте следующее:KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
-
Сохраните изменения и закройте редактор. Для Nano это можно сделать, нажав
CTRL + X
, затемY
, чтобы подтвердить изменения, иEnter
. -
Перезапустите SSH-сервер, чтобы изменения вступили в силу:
sudo systemctl restart ssh
-
-
Проверьте совместимость других приложений: Если MySQL Workbench успешно подключается к вашей базе данных, это подтверждает, что SSH-сервер настроен корректно. Убедитесь, что вы используете правильные настройки подключения в Navicat.
-
Проблемы с ключами аутентификации: Убедитесь, что ключи SSH, которые вы используете, корректны и имеют правильные разрешения. Они должны быть защищены, что означает, что доступ к ним разрешен только для владельца:
chmod 600 path_to_your_private_key
-
Дополнительная отладка: Если проблема продолжает возникать, вы также можете попытаться запустить SSH-сервер с детализированным выводом, чтобы увидеть, какие ошибки возникают во время попытки подключения. Это можно сделать с помощью:
sudo /usr/sbin/sshd -d
Эти шаги должны помочь вам решить проблему с подключением Navicat к вашему серверу через SSH-туннель на Ubuntu 16.04. Если вы продолжаете сталкиваться с ошибками, рассмотрите возможность использования другого клиента, который поддерживает все необходимые алгоритмы и версии.