$ xauth extract - :0 | sudo xauth -f /root/.Xauthority merge -
Они также запускаются с другого tty, поэтому вам нужно
$ DISPLAY=:0 xclock
Процесс прост. Создайте новое соединение и выберите метод соединения Standard TCP/IP over SSH. Значения для SSH сервера, обеспечивающего туннель:
PasswordAuthentication
на SSH-сервере имеет значение no
). Значения для подключения к СУБД MySQL.
bind_adress
MySQL). Не очищать, если мы правильно установили ваши настройки. Поэтому я предполагаю, что firewallhost
- это хост, доступный из вашего Workbench. Итак, необходимо создать открытый порт на этом сервере, который может получить доступ к «настоящему» серверу mysql за этим брандмауэром.
Это нормально, если вы настроили постоянный туннель ssh на firewallhost
. Это делается так на firewallhost
ssh -L localhost: 33060: localhost: 3306 someshelluser @ databasehost
Это создает туннель openssh для localhost (не общедоступен ни в одном nic) на порт 33060 (или любой другой порт. у вас здесь бесплатно) на firewallhost
, который, в свою очередь, подключен через этот туннель с портом 3306 (снова на localhost, но на машине databasehost
), потому что он подключен как someshelluser на databasehost
.
И теперь вы можете подключиться к рабочей среде:
firewallhost
firewallhost
Файл ключей SSH: альтернатива ключевому файлу
Имя хоста MySQL: localhost
(когда мы открыли туннель на локальном хосте firewallhost
)
Чтобы туннель 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.