我需要使用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以便我以后可以使用它?
答案 0 :(得分:1)
您可以使用以下java命令
检查keytab的主体ktab -l -k /etc/security/keytabs/hdfs.headless.keytab
它将显示keytab的主体。使用该主体使用kinit命令对keytab进行身份验证。