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身份验证将不起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |