因项目最近使用kerberos认证,此前不太了解,网上查找资料看的也不是太懂,所以把本次经验记录一下.
kerberos服务端是安装好的,在此不附具体安装过程,具体操作如下:
1.客户端安装:(特别注意centos6版本和centos7版本,因内置kerberos版本不同,所以无法认证,如有类似情况需要在官网手动下载kerberos相关包,手动安装;经测试kinit验证可以通过,但本人用spark提交任务仍然失败,因时间关系具体原因还未找到)
yum install krb5-libs krb5-server krb5-workstation
2.用服务端/etc/krb5.conf文件替换本地相同文件(此处如未操作,会出现realm无法找到错误 )
3.登录服务端服务器,执行命令打开kerberos:
kadmin.local
4.查看当前kerberos认证用户:
listprincs
5.在认证库中新增用户:(username:认证用户名;/hostname:可选,主机名称,添加此项须在/etc/hosts配置中新增ip和主机对应关系;HADOOP.COM:realm名称,/etc/krb5.conf里面配置的值)
addprinc username/hostname@HADOOP.COM
执行以后需要手动设置密码,另有可选参数 -randkey 为随机密码,可省略密码配置过程
6.删除kerberos中的用户:
delprinc username/hostname@HADOOP.COM
7.生成kerberos认证文件: (/tmp/user.keytab认证文件存放位置和文件名称,随意指定;)
xst -k /tmp/user.keytab username/hostname@HADOOP.COM
文件生成以后,复制到客户端
8.命令测试:
kinit -k -t /opt/user.keytab username/hostname@HADOOP.COM
如报错信息,即认证成功,执行命令可查看认证信息:
klist
9.在spark提交任务时进行kerberos认证,在命令中新增以下参数:
--keytab /opt/user.keytab \
--principal username/hostname@HADOOP.COM \
以上即为简单的kerberos认证过程,以上内容仅供参考!
本文作者为竹子君,如有转载请注明出处!~