SSH, туннелирование соединения с БД
Лучшая настройка любой базы данных — это когда она не ждет внешних подключений. Но если подключиться все таки нужно, то можно создать SSH тунель к серверу и подключаться к БД локально.
Создать туннель на клиентской машине можно с помощью команды:
ssh -L 5555:localhost:5432 your_username@remote_host -N
Здесь:
-L 5555:localhost:5432
означает, что порт 5555 на вашем локальном компьютере будет перенаправлен на порт 5432 (стандартный порт PostgreSQL) на удаленном сервере;your_username@remote_host
: нужно заменитьyour_username
на вашего пользователя на удаленном сервере иremote_host
на адрес или имя хоста удаленного сервера;-N
говорит SSH не выполнять удаленные команды, а только перенаправлять порты.
Иногда нужно сделать так, чтобы туннель создавался автоматически при старте/перезапуске клиента. Одним из способов сделать это является создание задачи в crontab
. С помощью команды crontab -e
открываем редактор cron'а и добавляем:
@reboot /usr/bin/ssh -f -N -L 5555:localhost:5432 your_username@remote_host
Опция -f
говорит SSH идти в фоновый режим до выполнения команд.
Теперь на клиентской машине БД сервера доступна по адресу localhost:5555
.