使用 PgAdmin 4 设置 SSH 隧道

Set up SSH tunnel with PgAdmin 4

我是 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 等可以连接(你必须在 SSH 隧道 运行 时打开一个新终端 window):

psql -h localhost -p 9999 -U connectionusername -d dproduction

我还获得了我尝试连接的数据库的 dproduction 数据库密码:dproduction_pwd

我不明白 pgAdmin 中的所有内容。我做了以下事情:

创建服务器:
姓名=测试

连接:
主机 Name/Address:本地主机
利润:9999
维护数据库:postgres
用户名:连接用户名

SSH 隧道:
隧道主机:myorg.org.uk
隧道post:9999
用户名:ssh用户名
标识文件:C:\idef.pem
密码:dproduction_pwd

我一定是做错了什么,因为我没有使用上面 ssh 配置中的 LocalForward,这是怎么回事?将它放在隧道主机中不起作用。

我设法使用 SSH 隧道通过 Windows10 SSH 和 PGAdmin SSH 隧道访问我的数据库。确实需要一段时间。 pgAdmin 的文档对此不是很清楚。这是我发现的不同之处:

当使用 Windows 10 SSH 设置 SSH 隧道时,您需要将本地端口(在您的情况下为 9999)转发到远程端口(8888)。

在 pgAdmin 中,不再需要该本地端口。我的猜测是因为它已经知道你想通过哪个隧道访问哪个服务,所以它会在后台处理本地端口。在最常见的情况下,该隧道端口应该是 SSH 端口 22。

我对您当前设置的建议更改是:

  1. SSH Tunnel 选项卡中,将隧道端口设置为 22
  2. Connection选项卡中,将端口设置为8888

这应该有效。