kerberos里面有兩個理念,分別是王國(realm)和領域domain
安裝過程中,kdb5_util create -s 將會等待很長時間。
異常:Cannot contact any KDC for realm
首先是要確包Hosts文件中已經做了realm的相關映射;
然后就是kinit一定是要root/localhost,就是和你當初注冊的時候是一樣的才行。
Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]一種可能是因為Cache過期,通過sudo klist來查看主體的超時時間;
如果想要看keytab文件里面的主體情況可以通過klist -e -k XXX.keytab來查看
-e代表顯示加密類型,一個主體將會有多種加密;-k 代表keytab,后面緊跟着keytab的路徑
驗證主體是否可以被keytab包含:
kinit -k -t hdfs.keytab hdfs/
master@HADOOP.COM
-k代表使用keytab,-t代表keytab文件,緊跟着keytab文件路徑,最后一個是主體名稱;
Kerberos的用戶名是由三部分組成:hdfs,是用戶名,emr*是指本機的”hostname",@之后則是domain_name,是在/etc/krb5.conf里面配置的內容。
Login failure for hadoop/master@HADOOP.COM from keytab /etc/hasec/hadoop.keytab: javax.security.auth.login.LoginException: Unable to obtain password from user
我的這個問題是因為生成的keytab文件的默認權限是root,需要修改為hadoop用戶權限問題解決
javax.security.auth.login.LoginException: Checksum failed
可以采用kinit -k -t XXX.keytab user/hostname@YYY.com來對keytab文件進行驗證是否可以通過KDC的校驗。
kerberos但是生成了keytab就會隨機的生成密碼(網調說是添加到krb5.keytab文件),所以admin用戶(addprinc username方式添加)和這種用於交互的用戶(addprinc -randkey username方式添加)一定是要卻分開來;之前我就是hadoop/master@HADOOP.COM用戶既作為管理用戶也作為交流用戶,這是有問題的,一定要區分開來。
修改密碼指令:change_password
Unable to obtain password from user
因為.keytab文件是root權限,需要通過chown添加當前用戶的權限。
