Назад | Перейти на главную страницу

Логин в Ubuntu MySQL GUI с сертификатом / ключом

Я буду подключаться к MySQL на облачном сервере ubuntu каждый день с Mysql Administrator и Mysql Query Browser Инструменты графического интерфейса, и я чувствую, что очень медленно отвечаю. Я знаю, что можно подключиться к ssh, введя следующую команду в терминале, а затем используя инструменты графического интерфейса Mysql.

ssh -L 3307:127.0.0.1:3306 mysql-server-ip

Но не всем легко запустить указанную выше команду в терминале, а затем использовать инструменты графического интерфейса.

Вышеупомянутая команда ssh также хороша, и я чувствовал, что работаю с локальными базами данных, но было бы лучше и проще для всех, если бы у нее была возможность указать эту команду ssh в самих инструментах mysql gui.

Более того, я думаю снять ограничения на основе IP, поскольку я использую правила iptables только для разрешения mysql и других портов для определенных IP-адресов на облачном сервере.

Есть ли лучший и простой способ подключения к mysql, например, с использованием сертификата вместе с инструментами mysql gui ?.

Наконец, я ожидаю, что с инструментами графического интерфейса Mysql (администратор и браузер запросов):

У кого-нибудь есть идеи ?. Спасибо!

Просто я мог сделать это с помощью SSH и MySQL Workbench. Загрузки Workbench доступны для различных версий ubuntu в эта ссылка. Чтобы избежать ограничений на основе IP, следует открыть порт ssh для всех и отключить вход с паролем ssh и вместо этого использовать входы по ssh-ключу. Только те, кому разрешен брандмауэр, могут подключаться к mysql, но имея закрытый ключ ssh, могут подключаться к mysql с помощью MySQL Workbench независимо от местоположения, правил брандмауэра, IP-адресов и т. д. через ssh.

Взгляните на эти ссылки:

http://dev.mysql.com/doc/workbench/en/wb-new-server-instance-wizard.html

http://dev.mysql.com/doc/workbench/en/wb-manage-server-instance-dialog.html

Ниже приведены несколько снимков экрана, на которых показаны варианты подключения к mysql с помощью Workbench:

Чтобы избежать ограничения на основе IP-адресов с помощью MySQL Query Brower и Aministrator, я не знаю, кроме переадресации портов ssh.

Я не пробовал твой ответ, однажды попробую. Мне нужно больше времени, чтобы понять. Спасибо!

Недавно у меня была такая же проблема. Мне не удалось найти поддержку SSL в инструментах MySQLgui. Мне также не удалось найти прокси MySQL с поддержкой SSL, который я мог бы установить в своей сети следующим образом, т.е.

Я / кто-либо еще в моей сети ----------> Прокси-сервер MySQL в моей сети -------> MySQL через TLS --------> Удаленная конечная точка MySQL.

В конечном итоге я решил использовать stunnel и иметь:

Я / кто-либо еще в моей сети -----------> Хост Stunnel в моей сети: 3306 --------> MYSQL в туннеле TLS -----> Stunnel в удаленной сети : 3307 -----> Удаленная конечная точка MySQL

Конец удаленного stunnel также может быть сервером mysql. Вы можете использовать разные порты для разветвления на разные удаленные серверы MySQL.

Обновить: Вот что у меня работает:

Конец клиента

local-stunnel# cat /etc/stunnel/stunnel.conf |grep -v ';'


sslVersion = SSLv3

chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
pid = /stunnel4.pid

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1



debug = 2
output = /var/log/stunnel4/stunnel.log

client = yes


[mysqlc]
accept  = 13306
connect = remote.example.net:3307

Удаленный / серверный конец:

remote-stunnel# cat /etc/stunnel/stunnel.conf |grep -v ';'

cert = /etc/pki/tls/certs/stunnel.pem

chroot = /var/run/stunnel/
setuid = nobody
setgid = nobody
pid = /stunnel.pid

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1



debug = 3
output = /var/log/stunnel/stunnel.log



[mysqls]
accept  = 3307
connect = 3306

Сертификат и ключ должны быть сгенерированы и связаны с файлом (stunnel.pem). Мой выглядит так

# cat /etc/pki/tls/certs/stunnel.pem 
-----BEGIN RSA PRIVATE KEY-----
MII.....
....
-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
MIID....
....
-----END CERTIFICATE-----

Итак, мой туннель выглядит так:

ME------Plaintext MySQL----->local-stunnel:13306-----TLS--->remote-stunnel:3307---Plaintext MySQL--->127.0.0.1:3306

Конечно, вы можете изменить connect = 3306 на удаленной конечной точке на другой хост: 3306