我正在尝试通过 GSSAPI 使 postgres 和 kerberos 协同工作。在这一点上遇到麻烦。我真的是这两种技术的新手,这无济于事。我让 postgres 和 kerberos 分别按预期工作,并且正在使用它们(但不是一起使用)。
我在这里找到了说明: postressql-and-kerberos,并没有真正找到任何更详细地解释它的东西。
我在 postgresql.conf 文件中设置了这两行:
krb_server_keyfile = '/var/lib/pgsql/data/krb5.keytab'
krb_srvname = 'postgres'
Run Code Online (Sandbox Code Playgroud)
我已经通过使用该信息运行“kinit -kt”来验证这是正确的。我在 pg_hba.conf 文件中添加了这两个条目:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 10.0.1.0/24 gss include_realm=0 krb_realm=HOTDOG.REALM.COM
Run Code Online (Sandbox Code Playgroud)
我重新启动服务器并尝试通过远程客户端连接...
kinit freddyboy
<enter password>
Run Code Online (Sandbox Code Playgroud)
这是成功的,如果我做'klist',我可以看到细节。
然后我尝试通过以下方式连接到 postgres:
psql -l -h postgresserver.hotdog.com
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
pgql: GSSAPI continuation error: Unspecified GSS failure. Minor code may provide more information
GSSAPI continuation error: Server not found in Kerberos database
Run Code Online (Sandbox Code Playgroud)
如果我查看服务器日志文件 (postgresql-Tue.log)……我看到的只是“致命:用户“fred”的 GSSAPI 身份验证失败。
好吧,“fred”是我的 …