PostgreSQL - SSH-туннель без пароля - PullRequest
0 голосов
/ 02 июля 2019

Я хочу открыть SSH туннель, чтобы я мог подключиться к базе данных, как если бы я подключился к удаленному серверу.

Так что я могу сделать это без пароля (linux user сопоставлен с postgresql user):

ssh user@my_host.com
psql postgres

Мой pg_hba.conf выглядит так:

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5

С туннелем я попытался использовать: ssh -L 3333:localhost:5432 user@my_host.com

Тогда: psql -U user -p 3333 -h localhost postgres

Он запрашивает пароль.

Затем я попытался имитировать подход «без хоста», как вы это делаете с терминала (без указания хоста).

psql --help говорит -h по умолчанию /var/run/postgresql

Итак, я попробовал: ssh -L 3333:/var/run/postgresql:5432 user@my_host.com

А потом: psql -U user -p 3333 postgres

Но тогда я получаю:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.3333"?

В этом случае, я полагаю, я не подключаюсь через туннель, потому что он пытается использовать порт 3333 для postgresql? ..

P.S. Здесь есть похожий вопрос: PostgreSQL через SSH Tunnel но для этого необходимо указать пароль.

...