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

obtaining Kerberos ticker for hdfs user throws an error

我需要使用 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 的原因是因为密钥表文件具有权限“-r--r-----”并且 root 是所有者。

知道如何为 hdfs 用户获取 tgt 以便以后使用吗?

您可以使用下面的 java 命令检查 keytab 的主体吗

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

它将显示密钥表的主体。使用该主体使用 kinit 命令通过 keytab 进行身份验证。