На удаленном linux сервере стоит mysql на дефолтном 3306
порту. На сервер можно зайти по ssh через socks5 прокси с авторизацией по логину и паролю.
На локальной машине развернут простой сервер LAMP и есть phpMyAdmin
В БД на удаленном сервере хочется ходить через удобный графический интерфейс, то есть через локальный phpMyAdmin
На самом деле на удаленном сервере был phpMyAdmin но мне не захотелось ставить прокси в браузер :)
Для начала вспоминаем как подключаться к удаленному серверу по ssh через прокси с авторизацией.
Теперь делаем проброс портов через ssh.
Соединяемся с удаленным сервером по ssh и прокидыаем удаленный порт на локальный - создаем туннель между портом на удаленном сервере и портом на локальном клиенте. Таким образом наша локальная машина будет работать с портом на удаленном сервере как со своим локальным.
Подробнее можно прочитать здесь, там или тут.
Теперь попытаемся собрать все это в одно:
SOCKS5_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]
):
$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 и наблюдаем что в списке серверов есть наш прокинутый порт, выбираем его и авторизируемся (не забываем прокинуть порт командой выше).