Kerberos常见问题
1. Kerberos启动异常
- Kerberos启动后台日志提示异常:
No such file or directory - while initializing database for realm HADOOP.COM
在/var/log/krb5kdc.log中发现No such file or directory - while initializing database for realm HADOOP.COM
。
解决方法:
1)检查kdc.conf和krb5.conf文件是否配置正确,修改配置,注意:配置文件的[kdcdefaults],[logging]、[libdefaults]等的里面不能有空格 - 停止服务
sh
service krb5kdc stop
service kadmin stop
- 删除Kerberos数据库,重新创建数据库
sh
rm -rf /var/kerberos/krb5kdc/*principal*
kdb5_util create -s -r HADOOP.COM
- 创建管理员
sh
kadmin.local -q "addprinc admin/admin"
- 启动服务
sh
service krb5kdc start
service kadmin start
2. kinit通过keytab认证出现异常
通过Linux的jack主体执行kinit -kt /root/jack.keytab jack
出现下面情况:
sh
kinit: ???? while getting initial credentials
或者
kinit: Permission denied while getting initial credentials
解决方式:
(1)使用root用户修改jack.keytab的所属用户
sh
chown jack /root/jack.keytab
(2)修改jack.keytab的权限为660
sh
chmod 660 /root/jack.keytab
3. kinit认证时密码输入正确却提示密码错误
sh
[root@hadoop101 ~]# kinit jack
Password for jack@HADOOP.COM:
kinit: Password incorrect while getting initial credentials
这是因为jack已经生成了keytab,所以此时通过这种方式不能认证,需要通过keytab文件来认证,或者修改密码后再认证(修改密码后之前的keytab文件会失效)。
sh
[root@hadoop101 ~]# kinit -kt /root/jack.keytab jack
[root@hadoop101 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: jack@HADOOP.COM
Valid starting Expires Service principal
08/27/19 16:00:39 08/28/19 16:00:39 krbtgt/HADOOP.COM@HADOOP.COM
renew until 08/27/19 16:00:39
4. 创建数据库异常
报错信息:Bad krb5 admin server hostname while initializing kadmin interface
原因:在krb5.conf文件中为admin_server配置了无效的主机名。
解决办法:修改krb5文件,检查admin_server配置是否正确的主机名,修改后,重启执行创建数据库的命令。
5. Zookeeper集群启动异常
异常信息:Could not configure server because SASL configuration did not allow the ZooKeeper server to authenticate itself properly: javax.security.auth.login.LoginException: No password provided
问题:属于认证凭证更新问题。
解决办法:ZooKeeper启动安全机制,重新生成Krb5凭证。
每个主机重新更新凭证方法:全部服务停止和Cloudera Manager服务停止,修改Kerberos配置中的Kerberos加密类型随便添加一个,就可以主机更新Krb5凭证,然后在改回去在重新生成一次。
6. Hue启动,Kerberos Ticket Renewer起不来
sh
[root@hadoop101 ~]# kinit hue
Password for hue@HADOOP.COM:
[root@hadoop101 ~]# kadmin.local
Authenticating as principal hue/admin@HADOOP.COM with password.
kadmin.local: modprinc -maxrenewlife 90day krbtgt/HADOOP.COM@HADOOP.COM
Principal "krbtgt/HADOOP.COM@HADOOP.COM" modified.
kadmin.local: modprinc -maxrenewlife 90day +allow_renewable krbtgt/HADOOP.COM@HADOOP.COM
Principal "krbtgt/HADOOP.COM@HADOOP.COM" modified.