PostgreSQL-没有密码的SSH隧道

时间:2019-07-02 09:37:04

标签: postgresql ssh ssh-tunnel

我想打开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 via SSH Tunnel 但需要指定密码。

0 个答案:

没有答案