С PuTTY настройте информацию о туннеле в соответствии с парнем сервера (Соединение-> SSH-> Туннели). Но используйте любое имя хоста и пользователя/пароль, что Вы были бы для "регулярного" соединения SSH, которое, как Вы говорите, хорошо работает.
Вам не нужны корневой вход в систему SSH сервера CentOS, просто Ваш собственный вход в систему SSH. Туннель позволяет Инструментальным средствам Mysql говорить с MySQL, как будто это работало на Вашей собственной локальной машине.
... или Вы говорите, что у Вас есть установленный туннель SSH, но Вы не можете войти успешно в MySQL?
Ничего себе, благодарит задать этот вопрос. Я нахожу редким видеть кого-то полностью использующего SSH, и этот вопрос совершает нападки на нескольких областях.
Это не a ProxyCommand
проблема. ProxyCommand
просто дает локальному ssh клиенту команду делать что-то в подготовке прежде, чем попытаться говорить с удаленным клиентом. Да, в нашем экземпляре мы говорим с другой ssh сессией, но той сессией, с -W
просто берет наш вход и вперед это к другой машине. Можно думать о той предварительной ssh сессии, абсолютно независимо. Неизбежная автомобильная аналогия: Ваш автомобиль является тем же автомобилем, независимо от того, необходимо ли было ездить на пароме, чтобы заставить от точки указывать на B.
Это не a ForwardAgent
проблема. ForwardAgent
сделал, чтобы локальный клиент предоставил услугу, которая делает локальные ключи доступными в среде удаленного сеанса. Вы не закончили установление удаленного сеанса.
Это .ssh/config
проблема формата. Отметьте вторые и третьи debug1 строки. Они перечисляют, какие строки файла конфигурации Хоста применяются от Вашего .ssh/config
. Вы отмечаете это $ ssh target.example.com%via
работы, но как неверное имя пользователя и ключ. Ну, строка файла конфигурации для Host target
не читается (который ввел бы корректное имя пользователя и файл ключей). Какие строки файла конфигурации используются? *
и *%via
.
Как получить эти опции передать? Ну, достаточно интересный, подстановочный знак соответствует 0 строкам длины. Host target*
будет соответствовать target
, target%via
, target.example.com
и target.example.com%via
.
И таким образом, Вы задаете вопрос, был бы, устанавливая .ssh/config
на gateway
справка машины. Нет, это не было бы. Это никогда не читалось бы. Все происходит от нашей локальной машины.
Все, что я объяснил, только отвечает почему $ ssh target.example.com%via
не работает.
Вы предпочитаете $ ssh target%via
. Справедливо так, это более удобно. Краткая форма перестала работать потому что как имя хоста, target
не найден; это не решает. То, почему не, не является извергающим ssh: ssh: Could not resolve hostname target: Name or service not known
? Поскольку ProxyCommand
был уже успешно установлен. Элементы соединения SSH были созданы, но отказ имени хоста происходит, где он не ожидает, и таким образом, он разбомбит с более универсальным сообщением. Я зарегистрировал бы отчет об ошибках на этом, чтобы помочь определить, где отладочная информация могла быть улучшена.
Заключительный комментарий:
Мне действительно нравится Host *%via
синтаксис. Это чисто, все же гибко. Я ранее видел Host *+*
и это использует обоих первая и последняя часть %h(ost)
определить, куда пойти. Но прилагает немного больше усилий получить Ваш ум вокруг этого. ссылка: http://wiki.gentoo.org/wiki/SSH_jump_host