На удаленном linux
сервере стоит mysql
на дефолтном 3306
порту. На сервер можно зайти по ssh
через socks5
прокси с авторизацией по логину и паролю.
На локальной машине развернут простой сервер apache2
+php
+mysql
и есть phpMyAdmin
.
В БД на удаленном сервере хочется ходить через удобный графический интерфейс, то есть через локальный phpMyAdmin
.
phpMyAdmin
, но мне не захотелось ставить прокси в браузер :)Для начала вспоминаем как подключаться к удаленному серверу по ssh через прокси с авторизацией.
Теперь делаем проброс портов через ssh.
ssh
и прокидыаем удаленный порт на локальный - создаем туннель между портом на удаленном сервере и портом на локальном клиенте. Таким образом наша локальная машина будет работать с портом на удаленном сервере как со своим локальным.
Подробнее можно прочитать здесь, там или тут.
Теперь попытаемся собрать все это в одно:
bashSOCKS5_PASSWD=proxy_password ssh -L 3307:server_ip:3306 -o "ProxyCommand=connect-proxy -5 -S proxy_user@proxy_ip:proxy_port %h %p" user@server_ip
Эта команда похожа на ту что была в предыдущей статьей, но кое что добавилось:
-L 3307:server_ip:3306
- прокинуть порт 3306
с сервера server_ip
на нашу локальную машину на порт 3307
.Теперь настроим phpMyAdmin
- добавим настройки в конфигурационный файл config.inc.php
(после последней строки где идет настройка последнего сервера $cfg['Servers'][$i]
):
php$i++; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['host'] = '127.0.0.1:3307'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
Перезагружаем страницу с phpMyAdmin
и наблюдаем что в списке серверов есть наш прокинутый порт, выбираем его и авторизируемся (не забываем прокинуть порт командой выше).