У ряда хостинг-провайдеров доступна возможность небезопасного подключения к PostgreSQL с домашнего или рабочего компьютера. На нашем хостинге в целях безопасности удаленное подключение к PostgreSQL запрещено.
Но присутствует возможность использовать SSH-туннель до сервера хостинга. Это позволит обеспечить зашифрованное соединение с базой данных PostgreSQL.
В данном примере для удаленной работы с PostgreSQL разберем подключение с помощью DBeaver.
Для настройки подключения нам понадобятся реквизиты подключения по SSH, включающие в себя
ip-адрес сервера (1)
логин (2)
пароль (3)
Данные реквизиты должны были прийти на вашу электронную почту при создании контейнера хостинга. Если не можете найти это письмо, реквизиты можно получить в панели управления хостингом. Пароль можно сбросить и получить новый.
Нам понадобится узнать ip-адрес PostgreSQL-сервера. Его значение 10.19.4.1 .
Последнюю версию DBeaver можно скачать с сайта dbeaver.io .
Запустив DBeaver выбираем в меню «Создать новое подключение». Выбираем PostgreSQL.
Далее настраиваем SSH-туннель:
Ставим галочку «Использовать тунель SSH»
Вводим IP-адрес из параметров подключения по SSH
Вводим имя пользователя (логин)
Пароль
Жмем на кнопку «Тест соединения»
При первом подключении появится запрос относительно необходимости принять и сохранить ключ сервера в списке постоянных ключей. Ответьте согласием на этот вопрос.
Возвращаемся на вкладку «Главная»
В поле «Хост» пишем ip-адрес сервера, по которому отзывался PostgreSQL в Терминале
В поле База данных – имя нашей базы данных из настроек PostgreSQL
Пользователь и пароль из настроек PostgreSQL
Нажимаем «Тест соединения»
При успешном подключении – должно появиться такое окно
Теперь возможно работать с базой данных PostgreSQL удаленно со своего компьютера, используя DBeaver.
Если вам нужно, чтобы локальная программа подключалась к базе данных на хостинге, но в программе нет отдельного режима для подключения по ssh-туннелю, то можно с помощью ssh пробросить порт для работы базы данных на локальный компьютер.
Для linux и MacOS выполните команду
ssh -L 127.0.0.1:5432:10.19.4.1:5432 -Nf cXXX@hX.netangels.ru
Для Windows в Powershell выполните команду
ssh -L 127.0.0.1:5432:10.19.4.1:5432 cXXX@hX.netangels.ru
Адрес 127.0.0.1 здесь и далее не является обязательным, можно использовать другой свой локальный IP-адрес. Вместо cXXX нужно будет указать свой номер контейнера. Вместо hX укажите сервер, который в панели управления отображается в настройках контейнера на вкладке Контейнер, в разделе “SSH-доступ к контейнеру”:
Инструкция подготовлена пользователем услуги Хостинг.