我在某个主机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
拥有它,但无法访问服务器。令人沮丧的是,我实际上可以pguser
到sudo
的帐户,并在我作为pguser
连接后运行查询。
我能以某种方式解决这个问题吗?
答案 0 :(得分:0)
尝试
ssh -t -l user pgserver sudo -u pguser psql
-t强制ssh在另一端分配一个pty,这样就可以了 密码输入终端等。