【问题标题】:Postgres remote access via SSH asking for database passwordPostgres 通过 SSH 进行远程访问,要求输入数据库密码
【发布时间】:2019-02-07 13:35:28
【问题描述】:

Postgres 10 安装在 Ubuntu 18.04 沙箱上

如果我使用 Putty SSH 连接到我的机器,我就可以很好地连接到我的数据库。 (VirtualBox 中有 localhost 端口 22 转发)

dangel@ubuntu1804nginx:~$ psql
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04))
Type "help" for help.

dangel=#

但是,当尝试通过 PGAdmin 或 DataGrip 设置远程连接时,系统会要求我输入数据库用户名和密码...

The specified database user/password combination is rejected: 
[08004] The server requested password-based authentication, but no password was provided

我尝试将databaseuser 字段留空,并填充它们。一样的。

这让我感到困惑的原因是,我认为通过 SSH 连接,我应该使用ident 身份验证?因此不需要密码? (我没有设置密码)(我知道我一定错过了一个简单的概念,但它是什么?)

编辑: 日志文件条目

2018-09-02 03:57:07.865 UTC [13127] dangel@dangel FATAL:  password authentication failed for user "dangel"
2018-09-02 03:57:07.865 UTC [13127] dangel@dangel DETAIL:  User "dangel" has no password assigned.
        Connection matched pg_hba.conf line 94: "host    all             all             ::1/128                 md5"

【问题讨论】:

  • 如果您没有更改 root 帐户的密码,或者如果您从未设置过帐户,请使用 Google 的默认 Postgres 登录名。如果它是像 sql 之类的东西,它将是没有密码的 root

标签: postgresql ubuntu ssh pgadmin datagrip


【解决方案1】:

您的 pg_hba 要求该用途的密码,但用户没有密码,因此无法满足。

在数据库中为数据库用户分配密码(alter user dangel password 'open_sesame'; 或使用\password psql 命令),或者将“pg_hba.conf”的第 94 行更改为“trust”而不是“md5”。或者第三个选项(未经测试),使“常规”选项卡上的“主机”为空字符串,而不是“本地主机”。

您的 psql 命令有效,因为它在 pg_hba 中使用“本地”条目,而不是“主机”条目。如果你想使用psql 来调试它,那么你需要使用psql -h localhost,这将迫使它通过与其他相同的pg_hba 条目。

【讨论】:

猜你喜欢
  • 2019-07-15
  • 2017-12-26
  • 2013-09-30
  • 2012-04-02
  • 2013-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 2021-03-29
相关资源
最近更新 更多