获取hdfs用户的kerberos ticker时抛出错误

vq8itlhq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(1027)

我需要使用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以便以后使用吗?

hlswsv35

hlswsv351#

你能用下面的java命令检查keytab的主体吗

klist -k /etc/security/keytabs/hdfs.headless.keytab

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

相关问题