Kinit不会连接到域服务器:在获取初始凭证时,域不是KDC的本地域

我正在设置一个testing环境,Linux(Ubuntu 10.04)客户端将对Windows Server 2008 R2域服务器进行身份validation。

我正在按照官方的Ubuntu指南在这里build立一个Kerberos客户端: https : //help.ubuntu.com/community/Samba/Kerberos ,但是在运行kinit命令连接到域服务器时遇到了问题。

我正在运行的命令是: kinit [email protected] 。 此命令返回以下错误:

Realm not local to KDC while getting initial credentials 。 不幸的是,我找不到任何人通过谷歌search,经历了这个确切的错误,所以我不知道这是什么意思。

客户端能够ping服务器的主机名,所以DNS服务器指向域服务器。

以下是我的krb5.conf文件:

 [libdefaults] default = DS.DOMAIN.COM dns_lookup_realm = true dns_lookup_kdc true [realms] DS.DOMAIN.COM = { kdc = ds.domain.com:88 admin_server = ds.domain.com default_domain = domain.com } [domain_realm] .domain.com = DS.DOMAIN.COM domain.com = DS.DOMAIN.COM 

我怎样才能纠正这些错误? 我将不胜感激所有帮助,我可以得到!

你的域名是DS.DOMAIN.COM还是只有DOMAIN.COM

在你的领域,你需要让他们匹配,所以假设DS.DOMAIN.COM是你的域名,你需要改变:

 [domain_realm] .domain.com = DS.DOMAIN.COM domain.com = DS.DOMAIN.COM 

 [domain_realm] .ds.domain.com = DS.DOMAIN.COM ds.domain.com = DS.DOMAIN.COM 

但是,如果你的域名真的是DOMAIN.COM你需要把你的krb5.conf改为:

 [libdefaults] default = DOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true [realms] DOMAIN.COM = { kdc = ds.domain.com:88 #You can have more than one kds, just keep adding more kdc = #entries #kdc = dsN.domain.com:88 #Uncomment if you have a krb admin server #admin_server = ds.domain.com:749 default_domain = domain.com } [domain_realm] .domain.com = DOMAIN.COM domain.com = DOMAIN.COM 

然后你会像这样kinit [email protected]kinit [email protected]

在源代码中,看起来好像在协商过程接收到另一个域的引用并且该域不是“本地”或在您的krb5.confconfiguration中时引发了错误。

  00219 / *
 00220 *如果后端返回一个不在本地的主体
 00221 *领域,那么我们需要引用客户端到那个领域。
 00222 * /
 00223 if(!is_local_principal(client.princ)){
 00224 / *条目是转介到另一个领域* /
 00225 status =“REFERRAL”;
 00226 errcode = KRB5KDC_ERR_WRONG_REALM;
 00227 goto errout;
 00228} 

这可能是什么,我不能告诉你。 这可能取决于您的Active Directory环境,以及树中是否有多个域。 你可能需要更多的domain_realm别名,但确切的是我们无法从这里告诉。

我使用Zypher提供的相同的krb5.conf:

 [libdefaults] default = MYDOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] MYDOMAIN.COM = { kdc = mydc.mydomain.com:88 admin_server = mydc.mydomain.com:749 default_domain = mydomain.com } [domain_realm] .mydomain.com = MYDOMAIN.COM mydomain.com = MYDOMAIN.COM 

(对不起,我无法得到正确的格式:/)

在我的情况下,我需要kinit到MYDOMAIN.LOCAL而不是MYDOMAIN.COM。 不知道这是否是由AD中的身份validation设置引起的,也可能只是针对我的AD域。 我的域有2个DC,一个是W2k3 R2,另一个(在krb5.conf中指定为mydc.mydomain.com)是W2k8 R2。 但这是另一个可能的原因:“领域不是KDC获得初始凭证时本地的”消息

我有这个非常相同,发现解决我的configuration后,答案是如此简单,我仍然有这个。 感谢linuxqustions.org的logicalfuzz。

 kinit -V [email protected] kinit: KDC reply did not match expectations while getting initial credentials kinit -V [email protected] Authenticated to Kerberos v5 

首都在这里有所作为。 我知道这是在例子中显示,但我想强调这一点。

 [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = DOMAIN.LOCAL dns_lookup_kdc = true dns_lookup_realm = true ticket_lifetime = 24h #default_keytab_name = /etc/squid3/PROXY.keytab ; for Windows 2003 ; default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5 ; default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5 ; permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5 ; for Windows 2008 with AES default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 [realms] DOMAIN.LOCAL = { kdc = dc.domain.local admin_server = dc.domain.local default_domain = domain.local kpasswd_server = dc.domain.local } [domain_realm] .DOMAIN.LOCAL = DOMAIN.LOCAL DOMAIN.LOCAL = DOMAIN.LOCAL 

保留一个registry

尝试将该机器从一个域连接到另一个域时出现此错误。 编辑/etc/krb5.conf也不起作用。 然后我尝试了下面的命令重新configuration不同的域的东西

 # sudo dpkg-reconfigure -plow krb5-config 

用期望的选项和设置停止给kinit命令上面的错误。 解决。

虐待添加这只是因为我只是在这里结束了相同的错误,但发现另一个问题的另一个修复…确保该域是在所有的大写:[email protected]而不是[email protected]我刚刚失去了2个小时,因为这个…

我知道这是一个老问题,但我想添加为未来的疑难解答,我解决这个问题是所有build议的答案的组合,以及将我的主域控制器添加到我的/etc/hosts