前言:
眼前小伙伴们对“centos认证出错”大体比较关注,同学们都想要学习一些“centos认证出错”的相关知识。那么小编也在网摘上收集了一些有关“centos认证出错””的相关资讯,希望我们能喜欢,朋友们一起来学习一下吧!启停
#kadmin进程状态、启动、停止systemctl kadmin status/stop/start#krb5kdc进程状态、启动、停止systemctl krb5kdc status/stop/startKDC日志
/var/log/krb5kdc.log
注:可以通过查看日志,发现认证信息相关错误。例如当前的认证pincipal在服务器中是否存在,认证为啥失败等信息。
KDC周期备份脚本
/var/kerberos/krbtools/sync_kdc.sh手动执行KDC备份命令
1)kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans2)kprop -f /var/kerberos/krb5kdc/slave_datatrans masterbak报错如下:Key table entry not found while getting initial ticket3)检查主备的krb5.keytab是否包含两个principal,KDC库中正常应存在host/master@DC1.XX.COM以及host/masterbak@DC1.XX.COM查看keytab信息(存储的princial信息)
#查看keytab中的principalklist -kt /etc/hadoop/hdfs/hdfs.keytab查看principal信息
#进入KDC的服务器,执行如下命令kadmin.local#查看principal信息getprinc hdfs/hm001@DC1.XX.COM认证票据更新
#Hadoop代码更新票据UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();#shell更新kinit -kt /etc/hadoop/hdfs/hdfs.keytab hdfs/hm001@DC1.XX.COM
注:可以根据klist先查看当前keytab中存储的principal信息,然后进行认证。
Windows环境下使用keytab文件进行认证登录,报错 kinit: Bad encryption type while getting initial credentials
原因分析:当前使用的Kerberos服务为Centos 7u4操作系统上默认的kerberos版本1.15.1-8.el7,该版本kerberos服务默认支持的加密类型supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal,比6ux系统新增了camellia256-cts:normal camellia128-cts:normal两种加密类型,当前我们Windows版本使用的MIT Kerberos客户端自带kinit工具不支持这两种加密方式,导致kinit执行报错。
解决方法:客户端创建用于windows环境认证登录的keytab文件时,添加-e选项指定加密方式
ktadd -e "aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal" -kt /tmp/hello.keytab hello@DC1.XX.COM
kvno不一致问题
问题现象:出问题的节点的keytab中存储的principal的kvno和KDC服务端不一致。
查看问题节点的kvno:klist -kt /etc/hadoop/HTTP/HTTP.keytab
查看主节点的kvno:getprinc HTTP/hb17111@DC1.XX.COM
两者的kvno不一致。
使问题节点的keytab和KDC服务端保持一致(重新生成新的keytab,发放问题节点):kadd -k /etc/hadoop/HTTP/HTTP.keytab HTTP/hb17111@DC1.XX.COM
kdb5_util:Improper format of Kerberos configuration file while initializing
解决方案:仔细排查/var/kerberos/krb5kdc/kdc.conf文件是否有问题(格式)。
Windows下kinit不起作用,或出现too many parametes
where kinit检查下是否用的是java的kinit、检查kinit 命令(注意-k -t隔开)。
Kerberos打开DEBUG日志
Kerberos打开debug日志:配置文件/opt/software/hadoop/hdfs/libexec/hadoop-config.sh中加入如下内容:HADOOP_OPTS="$HADOOP_OPTS -Dsun.security.krb5.debug=true"
kinit: Client not found in Kerberos database while getting initial credentials
解决方案:
1) 命令输错:kinit –kt nbhd.keytab nbhd@DC1.XX.COM
2) KDC服务器,kadmin.local进去之后数据库查看下有没有对应princal
Klist:Included profile directory
问题表现:
解决方案:屏蔽该行。
principal走通配符(Hadoop配置文件通配符)
问题表现:IllegalArgumentException:Server has invalid Kerberos principal
解决方案:
<property> <name>dfs.namenode.kerberos.principal.pattern</name> <value>*</value> </property> <property> <name>dfs.datanode.kerberos.principal.pattern</name> <value>*</value> </property> <property> <name>hadoop.http.authentication.kerberos.principal.pattern</name> <value>*</value> </property> <property> <name>yarn.resourcemanager.principal.pattern </name> <value>*</value> </property> <property> <name>yarn.nodemanager.principal.pattern</name> <value>*</value> </property> <property> <name>yarn.web-proxy.principal.pattern</name> <value>*</value> </property> <property> <name>mapreduce.jobhistory.principal.pattern</name> <value>*</value> </property>KDC日志中报:<unknown client>
问题表现:
解决方案:检查Kerberos所在服务器 /etc/hosts配置信息
小结:Kerberos问题相比之下,比较难解决,需要打破常规,跳出思维定式。
标签: #centos认证出错