Postgres通过ssh连接

时间:2015-08-29 22:19:30

标签: postgresql ssh

我在某个主机pgserver上运行PostgreSQL服务器。此服务器不向外界打开(仅允许来自localhost的连接)。我可以通过ssh(使用公钥)以[{1}}身份登录该主机:

user

然后我可以me@local:~ $ ssh user@pgserver 向特定用户su运行查询。

pguser

我需要在此处输入user@pgserver:~ $ sudo su pguser pguser@pgserver:~ $ psql 的sudo-password。我无法以user身份连接,也无法知道自己的密码。我也无法以pguser的身份访问数据库。

现在为了简化开发,我想从本地机器到user设置ssh-tunnel:

pgserver

问题是虽然me@local:~ $ ssh -L localhost:5432:localhost:5432 user@pgserver 可以访问服务器,但他无法访问数据库。 user拥有它,但无法访问服务器。令人沮丧的是,我实际上可以pgusersudo的帐户,并在我作为pguser连接后运行查询。

我能以某种方式解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

尝试

ssh -t -l user pgserver sudo -u pguser psql

-t强制ssh在另一端分配一个pty,这样就可以了 密码输入终端等。