12 июн. 2009 г.

SSH-туннель

Иногда мне нужно поработать с удалённой БД PosgreSQL через pgAdminIII. Сервер, на котором крутится база, из интернета недоступен. Зато доступен другой сервер, с которого можно попасть на сервер БД. Чтобы мой pgAdminIII мог добраться до PostgeSQL, я пробрасываю туннель с моей машины на сервер с БД через доступный мне сервер. Примерно так:

$ ssh -f -L 15432:postgresql.server:5432 i.can.get.here -N

Что делает эта команда?

Во-первых, она соединяется с сервером i.can.get.here.
Во-вторых, соединение происходит в фоновом режиме (ключ -f).
В-третьих, все запросы на мой локальный порт 15432 перенаправляются на порт 5432 сервера postgresql.server через сервер i.can.get.here (-L 15432:postgresql.server:5432).
В-четвёртых, не выполняет на удалённом сервере команду, которая выполняется при обычном входе.

Теперь, чтобы добраться до БД, я могу в pgAdminIII настроить соединение с localhost:15432, или выполнить команду:

$ psql -h localhost -p 15432 -U username -W password


Такое же туннелирование можно использовать, если, например, вам закрыли порты для почты или ICQ, но у вас есть доступ к прокси. :)

1 комментарий:

  1. Анонимный16.08.2013, 00:33

    Последнее время я использую Valentina Studio для работы с postgresql. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview

    ОтветитьУдалить