Переадресация портов SSH
В этом случае можно перенести db_server: 3306 на web_server: 3306. Тогда это выглядело бы так, как если бы база данных MySQL работала локально на веб-сервере, прослушивающем порт 3306. Однако localhost: 3306 на веб-сервере действительно безопасно перенаправляется на localhost: 3306 на сервере базы данных.
Чтобы настроить это, вам понадобится пара ключей без пароля, позволяющая автоматически запускать SSH-туннель. Сделайте следующее:
db_serv$ ssh-keygen -t rsa
db_serv$ scp .ssh/id_rsa.pub webserver:
web_serv$ cd ~; mkdir .ssh
web_serv$ cat id_rsa.pub >> .ssh/authorized_keys2
web_serv$ chmod -R go-rwx .ssh; rm id_rsa.pub
db_serv$ ssh webserver
Последняя команда должна разрешить вам SSH с сервера базы данных без ввода пароля. Пара ключей выполняет аутентификацию.
Команда для открытия туннеля SSH:
db_server $ ssh -f -q -N -R3306: db_server: 3306 веб-сервер
Затем вы можете проверить доступ к локальной базе данных на веб-сервере. Вам нужно будет правильно установить разрешения в базе данных MySQL для пользователя и пароля, которые вы используете.
web_serv $ mysql -h 127.0.0.1 -P 3306 -u пользователь -p db_name
Возможно, вы захотите добавить строку 'ssh' выше в /etc/rc.d/rc.local (в Red Hat), чтобы туннель открывался при перезагрузке. Помните, что если туннель не работает, ваше веб-приложение не может получить доступ к базе данных.