获取hdfs用户的Kerberos ticker会引发错误

时间:2016-10-14 02:15:29

标签: hadoop hdfs kerberos

我需要使用hdfs用户调用命令。我的环境是经过kerberos身份验证的,因此,为此我调用了以下命令来获取hdfs用户的kerberos票证:

kinit -V -kt /etc/security/keytabs/hdfs.headless.keytab hdfs

该命令引发了以下错误:

Using default cache: /run/user/krb5cc/krb5cc_MyUserID
Using principal: hdfs@MyRealm
Using keytab: /etc/security/keytabs/hdfs.headless.keytab
kinit: Password has expired while getting initial credentials

当我尝试在命令中使用sudo

sudo kinit -V -kt /etc/security/keytabs/hdfs.headless.keytab hdfs

我收到以下错误

Using default cache: /run/user/krb5cc/krb5cc_0
Using principal: hdfs@MyRealm
Using keytab: /etc/security/keytabs/hdfs.headless.keytab
kinit: Keytab contains no suitable keys for hdfs@MyRealm while getting initial credentials

我可能需要使用sudo的原因是因为keytab文件具有权限" -r - r -----"而root是所有者。

任何想法如何获取hdfs用户的tgt以便我以后可以使用它?

1 个答案:

答案 0 :(得分:1)

您可以使用以下java命令

检查keytab的主体
ktab -l -k /etc/security/keytabs/hdfs.headless.keytab

它将显示keytab的主体。使用该主体使用kinit命令对keytab进行身份验证。