我已经在 centos 上使用 gssAPI 使用 Postgresql 12 设置了身份验证。我遵循一个例子:https://paquier.xyz/manuals/postgresql/kerberos/。但是当我完成并跑去与 gssapi 连接时:
"psql -U "postgres/myrealm.example@MYREALM.EXAMPLE" -h myrealm.example postgres" 我遇到了一个错误:
psql:致命:无法接受 GSSAPI 安全上下文
致命:接受 GSS 安全上下文失败
详细信息:未指定的 GSS 故障。 次要代码可能会提供更多信息:找不到键表条目
我想知道我是否缺少任何配置步骤/命令或实施错误。非常感谢任何善意的帮助。提前谢谢。
问题的原因
我遇到了同样的问题,并花了几天时间调试它。问题最终是PostgreSQL没有配置为使用我认为我正在使用的密钥表。
我尝试将密钥表放在以下位置:
/etc/krb5.keytab
/usr/local/pgsql/etc/krb5.keytab
我尝试在/var/lib/postgresql/data/postgresql.conf
中设置以下内容:
krb_server_keyfile = /etc/krb5.keytab
这应该有效,但我认为因为我通过 Docker 容器使用 PostgreSQL,所以配置没有得到正确遵守。我还尝试执行SHOW ALL
查询,该查询还显示了预期的krb_server_keyfile = /etc/krb5.keytab
条目
溶液
最后,我将环境变量设置为KRB5_KTNAME=/etc/krb5.keytab
然后我的密钥表就被使用了。