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