Postgres 通过 SSH 连接

4

我有一个运行在主机 pgserver 上的PostgreSQL服务器。这个服务器没有对外开放(只允许从 localhost 连接)。我可以通过ssh登录到该主机,使用公钥验证身份,用户名为 user

me@local:~ $ ssh user@pgserver

然后我可以使用su命令切换到特定用户pguser来运行查询。

user@pgserver:~ $ sudo su pguser
pguser@pgserver:~ $ psql

我需要在这里输入用户的sudo密码。我不能作为pguser连接,并且不知道他的密码。我也没有作为用户访问数据库的权限。
现在,为了简化开发,我想从我的本地机器设置ssh隧道到pgserver
me@local:~ $ ssh -L localhost:5432:localhost:5432 user@pgserver

问题在于虽然user可以访问服务器,但他无法访问数据库。pguser可以访问数据库,但无法访问服务器。令人沮丧的是,当我连接为user后,实际上可以使用sudo切换到pguser账户并运行查询。
有没有办法解决这个问题呢?

可能是通过SSH隧道访问PostgreSQL的重复问题。 - e4c5
在我的情况下,我不知道“pguser”的密码。 - xaxa
1个回答

2

尝试

ssh -t -l 用户名 服务器地址 sudo -u 数据库用户名 psql

-t 强制 ssh 在另一端分配一个伪终端,以便进行密码输入等操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接