Как определить функцию, обрабатывающую `command not found`?

Не очищать, если мы правильно установили ваши настройки. Поэтому я предполагаю, что firewallhost - это хост, доступный из вашего Workbench. Итак, необходимо создать открытый порт на этом сервере, который может получить доступ к «настоящему» серверу mysql за этим брандмауэром.

Это нормально, если вы настроили постоянный туннель ssh на firewallhost . Это делается так на firewallhost

ssh -L localhost: 33060: localhost: 3306 someshelluser @ databasehost

Это создает туннель openssh для localhost (не общедоступен ни в одном nic) на порт 33060 (или любой другой порт. у вас здесь бесплатно) на firewallhost , который, в свою очередь, подключен через этот туннель с портом 3306 (снова на localhost, но на машине databasehost ), потому что он подключен как someshelluser на databasehost .

И теперь вы можете подключиться к рабочей среде:

  • Имя хоста SSH: firewallhost
  • Имя пользователя SSH: какой-то действующий пользователь на firewallhost
  • Пароль SSH: ваш пропуск для какого-то действующего пользователя
  • Файл ключей SSH: альтернатива ключевому файлу

  • Имя хоста MySQL: localhost (когда мы открыли туннель на локальном хосте firewallhost )

  • Порт сервера MySQL: 33060
  • MySQL Имя пользователя: ваш пользователь mysql

Чтобы туннель ssh на firewallhost был постоянным, вы можете запустить его там, как показано ниже, с ключевым файлом (для доступа к databasehost ) и отдельным процессом. через экран. Его можно поместить в ваш rc.local или что-то еще, что вы используете на firewallhost .

экран -d -m / usr / bin / ssh -v -o "StrictHostKeyChecking = no" -o "UserKnownHostsFile = / dev / null" -o "BatchMode = yes" -i /your/.ssh/ssh_host_dsa_key - q -L locahost: 33060: localhost: 3306 someshelluser @ databasehost

Вы должны просто «представить», что такой туннель ssh может «транспортировать» любой поток порта с одной машины на другую, открыв «новый» порт на машине, на которой вы создайте этот туннель ssh (здесь firewallhost ). Это можно сделать даже в общедоступном узле firewallhost , но вы хотите, чтобы это было на локальном хосте, поскольку вы не хотите, чтобы ваш порт mysql был открыт для публики;)

ОБНОВЛЕНИЕ:

Хорошо, поскольку у вас нет прямого доступа к firewallhost для создания постоянного туннеля, попробуйте другой способ. Вы сказали, что можете подключиться с помощью прокси-команды. Поскольку вы написали это в строке, а не как параметр '-o', я предполагаю, что у вас это есть в вашем ssh_config.

Если ваш ssh_config выглядит так:

Host server
    Hostname mysqlserver.example.org
    ProxyCommand ssh -W %h:%p firewallhost.example.org

Тогда вы можете попробовать следующее как « Имя хоста SSH » в рабочей среде. Если у вас есть шанс, вам разрешено указывать с ним параметры ssh. Я не тестировал это, но для приложения нет ничего необычного в том, чтобы передавать содержимое полей Hostname прямо в вызов ssh.

Имя хоста SSH:

-o ProxyCommand = "ssh -W% h:% p firewallhost.example.org" mysqlserver.example.org

Это должно привести вас на ваш mysqlserver через ваш firewallhost. Отсюда ваши настройки mysql могут использоваться, как если бы вы напрямую подключались к mysqlserver, как того ожидает рабочая среда.

ОБНОВЛЕНИЕ 2:

Как вы писали, вы находитесь на той же машине (Ubuntu 14), которая может подключаться к вашей базе данных mysql за firewallhost , вам просто нужно использовать значения в рабочей среде, которые вы использовать на консоли. Workbench будет использовать ваш .ssh / config, если вы вызовете workbench с тем же пользователем, для которого предназначен .ssh / config.

Наконец:

Имя хоста SSH будет просто 'targetHost', где команда прокси из вашего .ssh / config направит вас на 'targetHost' через 'firewallHost'. Имя пользователя SSH - 'username' (от .ssh / config снова).

Имя хоста MySQL должно быть localhost и портом 3306 - это должно быть точно так же, как вы делаете при доступе к 'targetHost' по ssh, как вы написали в своем вопросе. Поскольку рабочая среда будет использовать эти значения после (!) Подключения по ssh.

2
28.12.2016, 15:46
1 ответ

Теги

Похожие вопросы