使用 PgAdmin 4 设置 SSH 隧道
Posted
技术标签:
【中文标题】使用 PgAdmin 4 设置 SSH 隧道【英文标题】:Set up SSH tunnel with PgAdmin 4 【发布时间】:2021-04-13 06:49:53 【问题描述】:我是 pgAdmin 和 SSH 隧道的新手。我正在尝试使用 SSH 隧道建立与 postgres 数据库的连接。我在 Windows 10 上。我收到以下说明(我更改了下面的所有名称和端口)
将以下内容添加到您的 SSH 配置 (~/.ssh/config):
Host prod
Hostname myorg.org.uk
User sshusername
IdentityFile idef.pem
LocalForward 9999 localforward.amazonaws.com:8888
现在您可以通过隧道进入 PostgreSQL:
ssh -N prod
现在 psql et al 可以连接了(您必须在 SSH 隧道运行时打开一个新的终端窗口):
psql -h localhost -p 9999 -U connectionusername -d dproduction
我还获得了我尝试连接的数据库的 dproduction
数据库密码:dproduction_pwd
我不明白 pgAdmin 中的一切。我做了以下事情:
创建服务器: 名称 = 测试
连接: 主机名/地址:本地主机 保护:9999 维护数据库:postgres 用户名:连接用户名
SSH 隧道: 隧道主机:myorg.org.uk 隧道站:9999 用户名:sshusername 身份文件:C:\idef.pem 密码:dproduction_pwd
我一定是做错了什么,因为我没有从上面的 ssh 配置中使用 LocalForward,这是怎么回事?将其放入 Tunnel 主机不起作用。
【问题讨论】:
【参考方案1】:我设法使用 SSH 隧道通过 Windows 10 SSH 和 PGAdmin SSH 隧道访问我的数据库。确实需要一段时间。 pgAdmin 的文档对此不是很清楚。这是我发现的不同之处:
使用 Windows 10 SSH 设置 SSH 隧道时,您需要将本地端口(在您的情况下为 9999)转发到远程端口(8888)。
在 pgAdmin 中,不再需要该本地端口。我的猜测是因为它已经知道你想通过哪个隧道访问哪个服务,它会在后台处理本地端口。在最常见的情况下,该隧道端口应该是 SSH 端口 22。
我建议对您当前设置的更改是:
-
在
SSH Tunnel
选项卡中,将隧道端口设置为22
在Connection
选项卡中,将端口设置为8888
这应该可行。
【讨论】:
以上是关于使用 PgAdmin 4 设置 SSH 隧道的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ipython 集群(ipcluster)设置 ssh 隧道