在远程主机上使用pgadmin3连接docker容器中的数据库

3
我正在尝试连接到远程主机上运行的docker容器中的数据库。我在pgadmin3中配置了SSH隧道,包括主机的IP地址和身份文件。在设置选项卡中,我将 172.18.0.2(容器IP)作为主机插入。但是无法连接,pgadmin变灰一会儿,然后给我一个错误提示:

SSH错误:启动SSH会话时出错,错误代码为-8 [无法交换加密密钥]

我错过了什么吗?有可能连接到容器吗?

enter image description here


你的SSH隧道配置是什么? - Clément Prévost
如描述所述,我在pgadmin服务器配置中使用ssh选项卡。我使用远程主机的IP和密钥文件。如果我在pycharm中使用这个,一切都正常工作。 - Lioman
2个回答

3
如果您需要访问Postgres 9.5数据库,您可以手动创建SSH隧道,然后通过将主机设置为localhost来使用pgAdmin3进行连接。在Linux或Mac上,您可以使用以下命令:ssh -L 5432:<pg-host>:5432 <jump-host-ip-or-dns>。由于pgAdmin4的发展方向,似乎不太可能会对pgAdmin3进行任何更新。

1
这在远程主机上如何与Docker容器IP配合工作?这个Docker IP是你所说的pg-host吗? - Kev
1
@Kev 如果你将 <pg-host> 替换为 Docker IP,将跳板主机替换为远程主机,那么应该可以正常工作。 - Mikey

3

当我将pgAdmin从1.20.0升级到1.22.1时,开始出现了相同的错误。pgAdmin 4也不支持任何SSH隧道。因此,你现在唯一的选择是回退到1.20.0版本。不幸的是,如果你正在使用PG9.5或更高版本,pgAdmin 1.20.0不支持它。


经过数小时的努力和反复试验,终于感谢您的建议使它能够正常运行。pgAdmin 1.22.1在使用ssh隧道时存在问题。我通过使用pgAdmin 1.20.0和PG 9.4解决了这个问题。 - jasonco

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