PostgreSQL с переадресацией паролей через SSH - PullRequest
2 голосов
/ 24 декабря 2010

Я пытаюсь подключиться на моем компьютере к базе данных PostgreSQL, которая доступна только на некотором сервере (db разрешает только локальные подключения).Я думал, что смогу использовать переадресацию портов следующим образом:

$ ssh someserver.com -L 5100:127.0.0.1:5432

и затем подключиться к базе данных следующим образом:

$ psql -h 127.0.0.1 -p 5100 -U postgres dbname

Однако проблема в том, что на сервере нет пароля, но когда я пытаюсь подключиться к перенаправленному порту, он запрашивает пароль.Когда я оставляю его пустым, он возвращает «psql: fe_sendauth: пароль не указан» и не позволяет мне подключиться.

В чем может быть причина?У меня также есть экземпляр PostgreSQL на моем компьютере, это может вызвать конфликты?

1 Ответ

7 голосов
/ 24 декабря 2010

Когда вы говорите, что база данных разрешает только локальные соединения: вам нужно различать соединения "сокет unix" и соединения "TCP-to localhost", которые не являются одним и тем же и могут обрабатываться совершенно по-разному.* Для проверки: на сервере базы данных посмотрите, если добавление -h 127.0.0.1 в командную строку psql влияет на то, можете ли вы подключиться или нет.

Правила того, требуется ли пароль, указаны в * 1006.*.Может случиться так, что ваш сервер базы данных настроен на использование «идентификатора» аутентификации для unix («локальных») соединений, поэтому ваше имя пользователя Unix автоматически принимается в качестве имени пользователя базы данных.Поскольку этот метод аутентификации обычно недоступен для соединений TCP / IP («хост»), вам нужно использовать другой метод - если он установлен на «md5», то для него потребуется пароль.

Вероятно, все, что вам нужно сделать, это установить пароль для вашей учетной записи пользователя в базе данных при локальном подключении: ALTER USER username PASSWORD 'password'.Если вы хотите, чтобы при удаленном подключении все время запрашивался пароль, напишите файл .pgpass, чтобы сохранить его в учетной записи пользователя клиента: http://www.postgresql.org/docs/9.0/interactive/libpq-pgpass.html

...