Я пытаюсь подключиться к своей базе данных через SSH-туннелирование с одного из наших серверов веб-приложений с MySQL Workbench. Вот основной конфиг; обратите внимание, что я изменил некоторые значения на скриншоте из соображений безопасности.
Проблема заключается в том, что каждый раз, когда я пытаюсь подключиться через туннель SSH с одного из наших серверов приложений, я получаю следующую ошибку:
Не удалось подключиться к us-east-1.amazonaws.com через туннель SSH на computer.amazonaws.com с пользователем social_shop_prod. Не удается подключиться к серверу MySQL на 127.0.0.1.
Однако, если я использую те же учетные данные через SSH через следующую командную строку:
mysql -u social_shop_prod -h us-east-1.amazonaws.com -p
Я могу успешно подключиться и получить интерактивную командную строку MySQL.
Я говорил с остальной частью моей команды разработчиков здесь, и никто из нас не может понять, почему я не могу туннелировать через SSH с наших серверов приложений с Workbench; но когда я SSH к одному из наших серверов приложений и подключаюсь к MySQL через командную строку; Я могу успешно подключиться.
И почему он пытается подключиться через 127.0.0.1? Я не указал это в конфигурации; мой файл hosts не перенаправляет домены, показанные ниже, на этот IP.
Любой конструктивный вклад приветствуется.
источник
Я продолжал заниматься этой проблемой почти 2 недели, теперь мне удалось ее решить. Я опубликую это здесь, чтобы больше людей могли попробовать это.
Хорошо, я использую OpenSSH (родной Win10) и Workbench 8.
Шаг за шагом:
1. Добавьте свои ключи хоста SSH к агенту с помощью ssh-add.
2. Сгенерируйте пары ключей, используя ssh-keygen. В моем случае эти файлы автоматически переходят
Users/myUser/.ssh
в соответствии с настройками установки.3. Добавьте открытый ключ в authorized_keys файл (который должен быть в пути установки сервера, в моем случае
Windows/System32/OpenSSH/.ssh
) без расширений.4. Добавьте сгенерированные ключи, которые вы только что создали, к агенту с помощью ssh-add.
Шаги, приведенные выше, в значительной степени конфигурируют SSH-сервер командной строки, который, как я выяснил, OP уже сделал для своего соединения, работает через терминал. Чтобы настроить MySQL Workbench 8, вы в значительной степени делаете то же самое, за исключением того, что вы должны преобразовать private_key.pem в формат OpenSSH, прежде чем перемещать их в
Users/myUser/.ssh
иOpenSSH_instalation_path/.ssh
User/myUser/.ssh
иOpenSSH_instalation_path/.ssh
OpenSSH_instalation_path/.ssh
папке.User/myUser/.ssh
.ОБНОВЛЕНИЕ: Вам необходимо установить следующее в вашем файле sshd_config:
PermitRootLogin без пароля
PubkeyAuthentication да
PasswordAuthentication нет
PermitEmptyPasswords нет
AllowTcpForwarding да
ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ:
Я неопытный аналитик, поэтому, если более опытный пользователь знает, какая из двух папок .ssh является правильной, сообщите нам. Я нахожу OpenSSH немного двусмысленным по этому поводу.
Это сработало для меня при настройке локальной среды разработки с использованием только localhost. Просто для учебных целей.
Возможно, вы захотите добавить myUser @ localhost пользователям MySQL Workbench перед тестированием соединения.
Если действительно нужно, я могу добавить изображения.
источник
В моем случае проблема была вынуждена вернуться к действительному имени домена или IP-адресу вместо локального хоста, решенного локально.
Нестандартное разрешение хоста не удалось (
/etc/hosts
)Я работаю с механизмом разрешения локальных хостов, который определил:
По какой - то причине с
MySQL 5.2.47
наLinux Mint 14 (Nadia)
который похожUbuntu 12.10 (Quantal)
на механизм разрешения не работает .Решение
Просто переключитесь на публичное доменное имя, например,
my-website.com
решите проблему.источник
См. Здесь список ресурсов для подключения к различным целям (Amazon RDS, Amazon EC2, Windows Azure и др.): Http://forums.mysql.com/read.php?152,252640,252640#msg-252640 .
источник
У меня была похожая проблема, и это может быть обидно, но проверьте правила брандмауэра в AWS. У меня установлен диапазон IP-адресов, чтобы ограничить соединения с внешним миром. И IP в моем офисе изменился, так что он вышел за пределы диапазона IP. Мой коллега в другом офисе все еще мог подключиться, поэтому я подумал, что проблема на моем ПК, но проблема была с правилами брандмауэра в AWS. Надеюсь, что это помогает кому-то :)
источник