Взаимодействуете с PostgreSQL на удаленном сервере через SSH туннель?

У меня есть настройка пользователя A на моем веб-сервере с открытым ключом SSH, скопированным в ~/.ssh/authorized_keys пользователя B на моем сервере базы данных. Идея состоит в том, чтобы использовать туннель SSH для облегчения связи между моим веб-приложением и удаленной базой данных. Я использую ufw для блокировки всего, кроме ssh-соединений и порта 5432 , которые PostgreSQL использует для локальных соединений:

ufw default deny
ufw allow ssh/tcp
ufw allow 5432/tcp
ufw enable

Вот команда, которую я использую для открытия туннеля SSH ( через веб-сервер):

ssh -L 63333:localhost:5432 userb@1.2.3.4

Выполнение netstat -lpnt | grep 63333 | grep ssh после того, как приведенная выше команда на моем веб-сервере выдает следующее:

tcp      0     0 127.0.0.1:63333       0.0.0.0:*       LISTEN      22560/ssh
tcp6     0     0 ::1:63333             :::*            LISTEN      22560/ssh

Далее я пытаюсь подключиться на сервер базы данных через порт 63333 , чтобы убедиться, что все работает:

psql -h localhost -p 63333 userb

Я получил следующее сообщение об ошибке:

-bash : / usr / bin / psql: Нет такого файла или каталога

Есть ли что-то очевидное, что я здесь упускаю? У меня только PostgreSQL установлен на сервере базы данных. Насколько я понимаю, после того, как туннель на месте и с правильными параметрами, я не должен иметь доступ к интерактивному терминалу (PSQL)?

2
задан 19 December 2013 в 00:03

1 ответ

Doh! Мой SSH-туннель нормально подключался. Для связи с PostgreSQL на сервере должен быть установлен клиент, который устанавливает удаленное соединение.

В моем случае это была одна строка на моем веб-сервере:

sudo apt-get install postgresql-client-9.3
0
ответ дан 19 December 2013 в 00:03

Другие вопросы по тегам:

Похожие вопросы: