Kerberos - 发现不支持的keytype(1)

时间:2014-05-26 10:03:04

标签: java kerberos

我将Java从JAVA 6更新到JAVA 7后出现错误。在java 6中,一切运行正常,但我需要移动。

Found unsupported keytype (1) for my/my.com
Added key: 16version: 1
Added key: 23version: 1
Added key: 18version: 1
Ordering keys wrt default_tkt_enctypes list
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23.
Found unsupported keytype (1) for my/my.com
Added key: 16version: 1
Added key: 23version: 1
Added key: 18version: 1
Ordering keys wrt default_tkt_enctypes list
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23.
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23.
>>> KrbAsReq creating message
>>> KrbKdcReq send: kdc=my.com UDP:88, timeout=3, number of retries =1, #bytes=183
>>> KDCCommunication: kdc=my.com UDP:88, timeout=3,Attempt =1, #bytes=183
Exception in thread "main" java.io.IOException: Login failure for my/my.com from keytab /etc/hbase/conf/hdfs.keytab  

2 个答案:

答案 0 :(得分:6)

您附加的日志中的前四行显示了您的密钥表中的条目。有四个条目 - 第一行显示代码1的密钥(我们可以在IANA表中查找此代码代表的内容:http://www.iana.org/assignments/kerberos-parameters/kerberos-parameters.xml。etype 1是des-cbc-crc)。

现在在fith行中,有“使用内置默认etypes ...”的信息,就像你还没有配置你的krb5.ini文件一样? (在Windows中,它通常位于C:\ windows \ krb5.ini中。完整描述此文件的位置:http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/KerberosReq.html)。我们可以看到默认的enctypes:18,17(aes),16(des)和23(rc4-hmac)。 1不在此列表中,这就是为什么没有从keytab加载这个非常旧的DES变体的条目,错误:找到my / my.com的不支持的keytype(1)。

您需要创建krb5.ini文件。它应该看起来像这样(必须调整到您的组织设置):

[libdefaults]
  forwardable = true
  dns_lookup_kdc = true
  dns_lookup_realm = true
  default_realm = YOUR.COMPANY

  default_tkt_enctypes = rc4-hmac aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc
  default_tgs_enctypes = rc4-hmac aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc
  permitted_enctypes   = rc4-hmac aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc

[realms]
  YOUR.COMPANY = {
     kdc = your.company
  }

[domain_realm]
  .your.company = YOUR.COMPANY
  your.company  = YOUR.COMPANY

答案 1 :(得分:0)

在Cloudera问题中,你必须检查CM中的ecryption类型 - >管理 - >安全 - > Kerberos - > Kerberos配置。 加密类型与/etc/krb5.conf中的Kerberos Mit KDC相同 首先,停止所有服务和服务管理。然后重新部署所有keytabs。