【发布时间】:2017-11-16 10:14:52
【问题描述】:
将 kerberized Hortonworks Cluster 从 2.5.3 升级到 2.6.1 后,所有服务(hdfs、hive、spark、zookeeper 等)都无法通过 Kerberos 获取凭据,并出现以下错误:
>>>KRBError:
sTime is Wed Jun 14 11:52:10 CEST 2017 1497433930000
suSec is 825974
error code is 14
error Message is **KDC has no support for encryption type**
sname is krbtgt/BIGDATACLUSTER.EXAMPLE.COM@JUST.EXAMPLE.COM
msgType is 30
>>> Credentials acquireServiceCreds: no tgt; searching thru capath
>>> Credentials acquireServiceCreds: no tgt; cannot get creds
KrbException: Fail to create credential. (63) - No service creds
/etc/krb5.conf 文件没有改变(升级前它一直在工作):
[libdefaults]
renew_lifetime = 7d
forwardable = true
default_realm = BIGDATACLUSTER.EXAMPLE.COM
ticket_lifetime = 10h
[domain_realm]
.EXAMPLE.com = JUST.EXAMPLE.COM
.BIGDATACLUSTER.EXAMPLE.com = BIGDATACLUSTER.EXAMPLE.COM
BIGDATACLUSTER.EXAMPLE.com = BIGDATACLUSTER.EXAMPLE.COM
[realms]
BIGDATACLUSTER.EXAMPLE.COM = {
admin_server=MACHINE1.EXAMPLE.com
rdns = false
kdc = MACHINE1.EXAMPLE.com
default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
}
[capaths]
JUST.EXAMPLE.COM = {
BIGDATACLUSTER.EXAMPLE.COM = .
}
信托看起来像这样:
addprinc -e "aes256-cts:normal aes128-cts:normal arcfour-hmac:normal" krbtgt/BIGDATACLUSTER.EXAMPLE.COM@JUST.EXAMPLE.COM
这是我们尝试过的:
- 已验证 Java 和 JCE,一切正常
- 重新生成所有 Keytab 并重新启动集群 - 选中信任的“其他域支持 Kerberos AES 加密”复选框,已选中。
请看答案。看来最后一点是问题所在。
【问题讨论】:
-
出于好奇:Kerberos 跟踪的(片段)显示了由 KDC 为领域“Just”发出的错误消息,该错误消息未在
[realms]中定义(通过 DNS 别名找到并具有没有特定的参数)。您对该 KDC 有任何控制权,即您可以访问服务器端日志吗? -
很好,错误是因为另一个领域的跨领域问题。请看我的回答。
标签: hadoop kerberos hortonworks-data-platform