postgresql – 无法获得postgres和kerberos(gss)一起工作

前端之家收集整理的这篇文章主要介绍了postgresql – 无法获得postgres和kerberos(gss)一起工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过GSSAPI共同努力获得postgres和kerberos.此时遇到麻烦.我真的是这两种技术的新手并没有帮助.我有两个postgres和kerberos分别按预期工作,并且正在使用它们(但不是在一起).

我在这里找到了说明:postressql-and-kerberos,并没有真正找到任何解释它更详细的东西.

我在postgresql.conf文件中设置了这两行:

krb_server_keyfile = '/var/lib/pgsql/data/krb5.keytab' 
krb_srvname = 'postgres'

我通过运行带有该信息的’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

我重新启动服务器并尝试通过远程客户端连接…

kinit freddyboy
<enter password>

这是成功的,如果我做’klist’,我可以看到细节.

然后我尝试通过以下方式连接到postgres:

psql -l -h postgresserver.hotdog.com

我收到一条错误说明:

pgql: GSSAPI continuation error:  Unspecified GSS failure.  Minor code may provide more information
GSSAPI continuation error: Server not found in Kerberos database

如果我查看服务器日志文件(postgresql-Tue.log)…我看到的只是“致命:用户”fred“的GSSAPI身份验证失败.

好吧,’fred’是我的linux登录……“freddyboy”是我的用户原则.所以,像postgresql客户端那样的接缝并没有像它应该那样发送kerberos认证.我试过发送用户

psql -l -h postgresserver.hotdog.com -U freddyboy

日志文件现在说“GSSAPI身份验证失败了用户”freddyboy“,但它显然仍然失败.我有一个’freddyboy’的postgres用户拥有一些数据库.我可以在本地登录,没有GSSAPI,但看起来不行远程安全地获取.

我怀疑我的客户端没有指定我想要用户GSSAPI.由于这只是一个客户端,conf文件不存在……所以这可能是一个问题,我想.

还有一点,kerberos服务器是ActiveDirectory.我看到一些迹象表明校长应该是大写的.我已经尝试过服务主体(“POSTGRES”)和我的用户主体“FREDDYBOY”,但仍然没有爱.

非常感谢任何帮助.我在客户端和服务器上使用Postgres 8.4.13.

弗雷德

错误表明您没有为Postgres服务器创建服务主体.这是存储在服务器本身的krb5.keytab文件中的主体.

如何做到这一点可以在Postgresql文档,20.3.3. GSSAPI Authentication方法中找到.

如果您已正确创建此主体,可能发生的情况是您的DNS反转无法正常工作.如果你在Postgres服务器的IP地址上运行主机,你应该得到postgresserver.hotdog.com.如果不这样做,Kerberos身份验证将不起作用.

猜你在找的Postgre SQL相关文章