gpt4 book ai didi

postgresql - 通过 SSH 隧道在 PostgreSQL 上进行身份验证失败

转载 作者:行者123 更新时间:2023-11-29 11:59:43 25 4
gpt4 key购买 nike

我有 PostgreSQL 服务器,一台单独的计算机是它的客户端。他们在一个网络中。如果我使用像

这样的 psql 命令

psql --host db_ip_address --port 5432 --user user base_name

连接正常,一切正常。

但如果我打开 SSH 隧道到数据库服务器,例如:

ssh -L 63333:localhost:5432 root@db_ip_address

然后尝试做同样的事情:

psql --host localhost --port 63333 --user 用户 base_name

突然输出错误信息:

psql:致命:用户“user”的身份验证失败

服务器上的 pg_hba.conf 有这样几行:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.0.49/32 trust
host all all 192.168.0.50/32 trust
host all all 192.168.0.48/32 trust
# IPv6 local connections:
host all all ::1/128 ident

我需要使用 SSH 隧道,因为我自己的计算机实际上还需要一个隧道,这是获得数据库连接的唯一方法。而且我不想更改任何配置或基于 PostgreSQL 服务器,因为它在实时服务器上工作。希望得到帮助。

最佳答案

根据错误消息和 pg_hba.conf,服务器将 localhost 解析为其 IPv6 地址,该地址与 ident 身份验证相关。

作为解决方案,您可以:

  • 更改 pg_hba.conf 以设置 ::1/128trust 方法,就像 的情况一样>127.0.0.1/32

  • 或运行 psql --host 127.0.0.1 --port 63333 [other options]... 强制使用 IPv4 地址。

关于postgresql - 通过 SSH 隧道在 PostgreSQL 上进行身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com