我有一个debian挤压主机,我无法在没有密码提示的情况下用kerberoslogin。 一个相同configuration的Ubuntu 12.04主机工作正常,可以login而不需要密码提示。
在kinit之后,klist给出:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: boti@REALM Valid starting Expires Service principal 14/02/2013 16:37 15/02/2013 16:37 krbtgt/REALM@REALM
现在,当我尝试通过sshlogin到debian-squeeze时,出现密码提示。 如果我没有进行authentication检查我的票,我得到:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: boti@REALM Valid starting Expires Service principal 14/02/2013 16:37 15/02/2013 16:37 krbtgt/REALM@REALM 14/02/2013 16:38 15/02/2013 16:37 host/debian-squeeze@ 14/02/2013 16:38 15/02/2013 16:37 host/debian-squeeze@REALM
所以显然我得到了一张票。 然而,sshdebugging日志给出:
Postponed gssapi-with-mic for boti from 192.168.255.98 port 59557 ssh2 debug3: mm_request_send entering: type 40 debug3: mm_request_receive_expect entering: type 41 debug3: mm_request_receive entering debug3: monitor_read: checking request 40 debug1: Unspecified GSS failure. Minor code may provide more information Wrong principal in request
这和这里以及这个bug报告中描述的非常相似。
我的DNS很好。 已经尝试重新创build校长/密钥。 所以没有哪个解决scheme在那里发布。
任何提示?
在示例输出中,我看到你得到了一个debian-squeeze的密钥 – 一个没有任何点的主机名。 这确实certificate你设置你的反向分辨率指向短名称。 这真的是你看到的非FQDN名称,还是编辑了这个问题?
Kerberos应该可以兼得,但是你可以仔细检查一下主机本身是否认为它被称为debian-squeeze 。 检查debian-squeeze里的forward – > reverse lookup是否真的解决了debian-squeeze :
$ getent hosts $(hostname) | awk '{print $1; exit}' | xargs getent hosts | awk '{print $2}'
我还没有真正听说过使用短名称部署Kerberos,所以如果您有select,坚持使用FQDN可能是一个好主意。
更新:
客户端正在获取短名称的密钥,但服务器认为它是正确命名的长名称。 这个问题很可能在那里。 只要确定,请尝试以下操作:
检查来自客户端的正向/反向名称查找。 即
$ getent hosts debian-squeeze | awk '{print $1; exit}' | xargs getent hosts | awk '{print $2}'
返回的名称是客户将尝试获取票据的名称。 从你的输出来看,这可能是简称。
检查服务器上的密钥。
$ sudo klist -k /etc/krb5.keytab Keytab name: WRFILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM ...
在列表中,您应该看到与前一个命令的主机名匹配的主体。 如果不存在,那就是你的问题。 如果有的话…
validationKerberos服务器上的密钥版本是否与debian-squeeze 。 在客户端上,明确地获得一个密钥,并在行尾validation“KVNO”版本:
$ kvno host/debian-squeeze.realm host/debian-squeeze.realm@REALM: kvno = 1
无论如何,所有这些命令中的主机名和“kvno”版本都应该匹配。
只是为了介绍基础知识,是否检查过所有机器上的时钟是否同步?
当服务器上的/ etc / hosts包含一个与IP地址不匹配的条目时,我看到这个错误。 您是否已经从/ etc / hosts中检查(或删除)了所有非本地主机条目?