Я не могу подключиться с использованием TCP / IP через SSH-соединение в MySQL Workbench с ПК. В чем дело?
Я создал базу данных MySQL 5.1 на сервере Ubuntu mysql.myhost.com . Я могу получить к нему доступ локально. MySQL Workbench (ПК) предлагает установить соединение через TCP через ssh. Он работает через порт 3306 на удаленном сервере, где работает командная строка mysql.
Я использовал следующие детали сессии:
- Способ подключения: TCP / IP через SSH.
- Имя хоста SSH: mysql.myhost.com : 3306
- Имя пользователя SSH: мой логин Linux
- Файл открытого ключа SSH: мой локальный файл открытого ключа
- MySQL hostname: 127.0.0.1 MySQL
- Порт сервера: 3306
- Имя пользователя: root
При попытке подключиться появляется сообщение об ошибке: «Не удалось подключиться к MySQL на 127.0.0.1:3306 через SSH-туннель на mysql.myhost.com с пользователем root»
«Не удается подключиться к серверу MySQL на« 127.0.0.1 »(10061)»
В качестве другого теста - я настроил SSH-туннель с портом 3306, используя Putty, и я могу подключиться через MySQL Workbench через этот туннель, который перенаправляет соединения с моим локальным 3306 на удаленный сервер, как описано выше. Но я не могу заставить работать TCP / IP через SSH в Workbench.
Вторичный вопрос: когда Workbench запрашивает «Путь к файлу открытого ключа SSH», неужели ему не нужен мой файл закрытого ключа?
источник
Ответы:
Я наткнулся на этот вопрос, когда сам столкнулся с этой ошибкой. Я мог бы наконец выяснить конфигурацию.
Наконец, я ввел следующее в MySQL WorkBench.
Вам остается только правильно настроить SSH-сервер для работы с ключами, а не с паролями. Надеюсь, это кому-нибудь поможет.
источник
AuthorizedKeysFile /home/root/.ssh/authorized_keys
и что в поле author_keys мой ключ PUBLIC использовался в качестве записи.AllowTcpForwarding yes
применяется ли шаг 2, какой набор, к удаленному серверу, т.е. к хосту с экземпляром MySQL, к которому мы пытаемся подключиться; или локальный компьютер с установленным MySQL WorkbenchAllowTcpForwarding
записиЯ думаю, что подход TCP / IP через SSH работает, устанавливая «нормальное» SSH-соединение, лежащее в основе MySQL-соединения (так же, как если бы вы использовали туннелирование
-L
с клиентом командной строки OpenSSH).Следовательно, вам нужно указать соединение с SSH-сервером на сервере, через который вы устанавливаете туннель. Здесь вы, похоже, используете
mysql.myhost.com:3306
, что подразумевает, что вы используете этот SSH-сервер (не MySQL) на порту 3306.Можно привязать сервер MySQL к 127.0.0.1:3306 и сервер SSH к внешнему IP-адресу для
mysql.myhost.com
порта 3306, но это маловероятно. Я полагаю, ваш SSH-сервер прослушивает порт 22 (по умолчанию).Вы, вероятно, должны использовать
mysql.myhost.com:22
. (Убедитесь, что вы можете подключиться к нему через обычный SSH-клиент, такой как Putty).источник
Вам может потребоваться проверить пользователей в таблице mysql.user.
Запустите этот запрос:
Вы должны увидеть что-то вроде этого:
Пожалуйста, обратите внимание, что
Если вы хотите, чтобы root подключался через TCP / IP, вы должны указать IP-адрес или сетевой блок для пользователя root.
Что-то вроде этого:
или если пароль root одинаков для root @ localhost, то
ПРЕДУПРЕЖДЕНИЕ: root @ '%' обычно не рекомендуется. Возможно попробуйте root@'10.% 'или любой другой сетевой блок для root.
Попробуйте!
источник
...@localhost
работать через туннель SSH, так как для сервера MySQL соединение происходит с конца туннеля?Возможно, вы используете более старую версию MySQL Workbench и вам нужно обновить ее. Это ошибка в версии 6.0.8, которая в настоящее время является версией в репозиториях Ubuntu. Обновление до версии 6.3.6 исправило это для меня.
Загрузите здесь: http://dev.mysql.com/downloads/workbench/#downloads
источник
Одна вещь, которая не упоминается ни в одном другом ответе, - это важность формата OpenSSH для ключа, как указано в SO ( https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via- ssh-due-to-key / 38108623 # 38108623 ).
Несмотря на ответ, я смог использовать защищенный паролем ключ с MySQL Workbench 6.3.7 (64-битная, Windows 10).
источник
Моя проблема была связана с тем, что я пытался использовать
ed25519
ключ SSH. Я заметил эту ошибку на сервере SSH вauth.log
:Как только я переключился на использование ключа RSA, все заработало как положено.
источник
Вы пытаетесь подключиться к серверу через ssh, но используете порт mysql. Порт, который вы хотите, это то, что прослушивает ваш ssh-сервер, обычно 22, затем localhost и 3306 для имени хоста и порта mysql.
источник
Я столкнулся с той же проблемой. Я проверил и попытался установить AllowTcpForwarding Да, но он отсутствовал в моем sshd_config, так что не помогло. убедитесь, что имя хоста ssh НЕ совпадает с именем хоста mysql (используйте localhost).
В рабочей среде выберите +, чтобы добавить новое соединение, и установите следующее:
Тестовое соединение. Это должно быть успешным, тогда нажми OK.Viola!
источник
Иногда ключи, созданные PuTTY, не работают. Используйте ssh-keygen в окне Linux для создания пары ключей. Скопируйте содержимое нового id_rsa в текстовый файл в Windows. Обязательно добавьте содержимое id_rsa.pub в авторизованные ключи на коробке Linux. Все остальные значения по умолчанию в Workbench в порядке, включая 127.0.0.1 для MySQL Hostname. Конечно, это должен быть стандартный TCP / IP поверх SSH.
источник
Я придумал ту же ошибку. Проблема в «несколько» тайм-ауте. Я провернул даже значение до 120 секунд, что не помогло.
В моем случае я мог решить эту проблему, выполнив nslookup myserver.com и используя IP-адрес вместо имени хоста. Мое предположение является проблемой при попытке подключения от IPv4 к IPv6.
источник
Только что возникла такая же проблема на компьютере с Ubuntu, который подключался к серверу под управлением MySQL версии 5.5.29 и MySQL Workbench 5.2.40. Сервер SSH требует использования ssh-ключа.
Я не смог подключиться к серверу MySQL с помощью пользователя root, вместо этого мне пришлось создать отдельного пользователя без полномочий root для использования при входе в систему. После этого я смог подключиться просто отлично.
Надеюсь это поможет.
источник
Хорошо, я знаю, что это старый вопрос, но я выдернул свои волосы над этим в течение нескольких часов. Я проверил все упомянутое Bruno и Eye, и все это показалось хорошим. Затем я понял, что это действительно секретный / открытый ключ. Поэтому я запустил Pageant и добавил свой закрытый ключ, чтобы он создал открытый ключ, который MySQL Workbench мог читать и вуаля, подключен! (На самом деле, когда MySQL Workbench начал работать, это было своего рода антиклиматично, но счастливым способом.)
TLDR: используйте Pageant для генерации открытого ключа из вашего личного ключа.
источник
Только то, что я нашел ... часто я создаю пользователей на SSH-сервере без оболочки (например, / sbin / nologin), чтобы они не могли войти на сервер и создавать там файлы и т. Д. (Для производственных систем мы Делаем это на брандмауэрах).
После этого в обычной среде Linux вы все еще можете перенаправлять порты, например:
и после этого подключитесь к нему с локальной рабочей станции как:
Но верстак выдает ошибку, что он не может подключиться к MySQL ... Если вы измените оболочку для этого пользователя, скажем, на / bin / bash - после этого все будет работать нормально.
Понятия не имею, почему Workbench требует локальной оболочки на удаленном SSH-сервере.
источник
Просто создайте новый ключ RSA с форматом, соответствующим формату MySQL.
Например:
источник