У ряда хостинг-провайдеров доступна возможность небезопасного подключения к PostgreSQL с домашнего или рабочего компьютера. На нашем хостинге в целях безопасности удаленное подключение к PostgreSQL запрещено.
Но присутствует возможность использовать SSH-туннель до сервера хостинга. Это позволит обеспечить зашифрованное соединение с базой данных PostgreSQL.
В данном примере для удаленной работы с PostgreSQL разберем подключение с помощью DBeaver.
Для настройки подключения нам понадобятся реквизиты подключения по SSH, включающие в себя
ip-адрес сервера (1)
логин (2)
пароль (3)
Данные реквизиты должны были прийти на вашу электронную почту при создании контейнера хостинга. Если не можете найти это письмо, реквизиты можно получить в панели управления хостингом. Пароль можно сбросить и получить новый.
Так же нам понадобится ip-адрес PostgreSQL-сервера, который мы можем определить следующим образом.
В настройках сайта переходим на вкладку PostgreSQL и получаем имя хоста (сервера).
В разделе Файлы запускаем Терминал
В терминале набираем команду ping «имя хоста PostgreSQL» (1), в нашем случае
ping postgres.c58504.h2
и смотрим ip-адрес, который отвечает на наши запросы (2).
Последнюю версию 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:
Инструкция подготовлена пользователем услуги Хостинг.