Postgres удаленный доступ через SSH с запросом пароля базы данных - PullRequest
0 голосов
/ 02 сентября 2018

Postgres 10 установлен в песочнице Ubuntu 18.04

Я могу нормально подключиться к своей базе данных, если я использую SSH на своей машине с Putty. (переадресация на локальный порт 22 в VirtualBox)

dangel@ubuntu1804nginx:~$ psql
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04))
Type "help" for help.

dangel=#

Однако при попытке установить удаленное соединение через PGAdmin или DataGrip меня просят указать имя пользователя и пароль для базы данных ...

enter image description here

enter image description here

The specified database user/password combination is rejected: 
[08004] The server requested password-based authentication, but no password was provided

Я попытался оставить поля database и user пустыми, а также заполнить их. То же самое.

Причина, по которой меня это смущает, в том, что я подумал, что при подключении через SSH я должен использовать ident аутентификацию? Тем самым не нужен пароль? (у меня нет установленного пароля) (я знаю, что мне не хватает простой концепции, но что это?)

EDIT: запись в файле журнала

2018-09-02 03:57:07.865 UTC [13127] dangel@dangel FATAL:  password authentication failed for user "dangel"
2018-09-02 03:57:07.865 UTC [13127] dangel@dangel DETAIL:  User "dangel" has no password assigned.
        Connection matched pg_hba.conf line 94: "host    all             all             ::1/128                 md5"

1 Ответ

0 голосов
/ 02 сентября 2018

Ваш pg_hba требует пароль для этого использования, но у пользователя нет пароля, поэтому его невозможно удовлетворить.

Либо назначьте пользователю базы данных пароль в базе данных (alter user dangel password 'open_sesame';, либо используйте команду \password psql), либо измените строку 94 в pg_hba.conf на «trust», а не «md5». Или третий вариант (непроверенный), сделайте «Хост» на вкладке «Общие» пустой строкой, а не «localhost».

Ваша команда psql работает, потому что она использует «локальную» запись в pg_hba, а не «host». Если вы хотите использовать psql для отладки, вам нужно использовать psql -h localhost, что заставит его пройти через ту же запись pg_hba, что и другие.

...