使用kerberosauthentication时,kdm和ssh会检测到不同的完全限定的域名

我正在尝试为我所在的公司的Kubuntu 12.04 Linux工作站设置Kerberoslogin支持(Windows AD域提供kerberos)。

它几乎完全工作,但我不能让kerberos同时为机器login(通过kdm)和ssh工作。 这个问题似乎是kdm检测主机的完全限定的域作为hostname.domain。 和ssh检测到完全合格的域名是hostname.domain(注意缺less尾随)。

缺乏或缺乏。 在kerberos请求中使用的域的末尾足以使票证请求失败,并在“kerberos数据库中找不到服务器”错误。 如果我更新/ etc / hosts以将完全限定的主机名称作为hostname.domain。 并join域使用samba kdmlogin使用Kerberos正常工作,但sshlogin失败。 如果我更新/ etc / hosts使主机名为hostname.domain,那么使用kerberos sshlogin工作,但kdmlogin失败。

对于为什么这两个服务检测到完全限定的域名有所不同,我有点不知所措 – 我已经做了大量的search,没有发现任何其他人有这个问题或任何选项来强制其中一个服务以不同的方式检测他们的域名。

技术细节

被使用的Kubuntu 12.04是我的控制之外的技术要求,所以在这个阶段升级到以后的发行版是不可行的。

正在使用pam_krb5来提供通过pam的Kerberos身份validation使用的DNS不是Windows的DNS(不能切换DNS服务器,直到进一步的工作在其他基础设施完成),所以用于桑巴kerberosiedjoin到域的主要细节从/ etc / hosts看起来像

127.0.0.1 hostname.domain. hostname localhost 

(正在使用的unix dns服务器虽然确实有主机的正确的反向dns条目)

/etc/krb5.conf(这主要是发行版的默认值,input域详细信息和服务器)

 [libdefaults] default_realm = DOMAIN krb4_config = /etc/krb.conf krb4_realms = /etc/krb.realms kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # samba 3 didn't like the default enc type so overridden to ones it supported default_tkt_enctypes = arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc default_tgs_enctypes = arcfour-hmac-md5 des3-hmac-sha1 des-cbc-crc [realms] DOMAIN = { kdc = dc01.domain kdc = dc02.domain admin_server = dc01.domain } [domain_realm] .domain = DOMAIN [login] krb4_convert = true krb4_get_tickets = false 

/etc/samba/smb.conf(仅用于join域)

 [global] security = ads realm = WETAFX.CO.NZ workgroup = WETAFX.CO.NZ kerberos method = secrets and keytab client signing = yes client use spnego = yes server string = %h server (Samba, Ubuntu) dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d 

pam wise /etc/pam.d/kdm只包含具有标准pam_krb5.so条目的common-pam文件,例如

 auth sufficient pam_krb5.so minimum_uid=1000 

它们基本上是从pam_krb5.conf的手册页直接获取的

sshconfiguration有

  GSSAPIAuthentication yes 

剩下的就是标准的默认ubuntu sshconfiguration文件。

感谢指出什么导致了服务之间检测到的完全限定的域中的这种不匹配。

我相信我已经弄清楚了这里发生了什么。 看起来在主机join/没有join之后,keytab文件中保存了额外的信息。 在领域的末尾,这是奇怪的行为来自何处。

一旦我删除了/etc/krb5.keytab并重新连接到域,创build一个新的密钥表,这个密钥表只被设置了没有configuration的域名。 在它的结尾。 在这一点上,kdm和ssh都和Kerberos一起正常工作。