无法通过 SSH 连接到远程 Postgresql 数据库

use*_*744 9 postgresql ssh

我正在尝试通过 pgAdmin3 GUI 连接到端口 5432 上远程服务器 myHost 上的 Postgresql 数据库。

服务器端 :

  • 我有一个与 postgresql 角色匹配的 Unix myUser。
  • pg_hba.conf 是:
    local all all tr​​ust
    host all all all 127.0.0.1/32 trust

客户端 :

  • 我打开一个 ssh 隧道:ssh -L 3333:myHost:5432 myUser@myHost
  • 我通过 pgAdmin3 (或通过 psql -h localhost -p 3333 )连接到服务器。

我收到以下错误消息:
服务器意外关闭了连接 这可能意味着服务器在处理请求之前或处理请求时异常终止。

我尝试使用 psql -h localhost -p 3333 --dbname=myDB --user=mySuperUser 访问具有超级用户角色的特定数据库,但没有成功。

我在设置中忘记了什么?
谢谢

Tom*_*vic 10

就我而言,问题在于隧道以 IPv6 地址结束:

ssh -L 5434:localhost:5432 user@server
Run Code Online (Sandbox Code Playgroud)

用我假设以前使用的地址替换 localhost 就足够了:

ssh -L 5434:127.0.0.1:5432 user@server
Run Code Online (Sandbox Code Playgroud)

我生命中的 15 分钟就泡汤了。:) 希望这能节省别人的时间...


Mir*_*ici 5

检查远程主机是否允许隧道。您可以通过以下方式与客户端确认隧道是否被拒绝:

ssh -v -L 3333:myHost:5432 myUser@myHost
Run Code Online (Sandbox Code Playgroud)

  • 如果 PostgreSQL 拒绝连接,那么您应该能够在 PostgreSQL 服务器的日志中看到一些内容。测试您进行 ssh 操作的服务器的连接。如果 ssh 服务器和 PostgreSQL 服务器位于同一台计算机上,则连接是在本地完成的,但在隧道中,您应该尝试 127.0.0.1 而不是以太网接口上的 IP。例如。`ssh -v -L 3333:127.0.0.1:5432 myUser@myHost`。另请参阅:http://www.cyberciti.biz/faq/postgresql-remote-access-or-connection/ (4认同)