1.步骤:
(1)在windows上安装了kerberos的客户端后,
(2)将KDC Server服务器上/ect/krb5.conf文件中的部分内容,拷贝到krb5.ini文件,然后重启kerberos客户端
(3)在Window下使用kinit测试
1)KDC Server上通过admin创建一个用户:
sudo kadmin.local
创建用户:addprinc znn@HADOOP. COM
设置密码:123456
创建成功
2)启动Windows上的kerberos客户端,get ticket,输入新创建的用户
3)销毁获取到的Ticket
选中列表中需要销毁的Ticket,点击Destroy Ticket,客户端没有principal
4)命令行下初始化,在cmd中安装kerberos客户端的目录下,执行kinit znn@HADOOP.COM,
刷新一下客户端,就可以看到principal了,见下图
5)命令行下kdestroy
(4)使用Keytab文件登录Kerberos
1)在KDC Server创建一个keytab文件,使用上一步创建的 znn@HADOOP.C OM
sudo kadmin.local
创建keytab:xst -norandkey -k znn123.keytab znn@HADOOP.C OM
注意:创建的znn123.keytab,默认放置在/etc/security/keytabs
在生成keytab文件时需要加参数”-norandkey”否则会导致,直接使用kinit test@CLOUDERA.com初始化时会提示密码错误。
2)测试znn123.keytab文件
注意:在非root用户下需要将生成的keytab文件,权限设置到644以上,否则会初始化失败或者使用sudo权限初始化
3)将生成的test.keytab文件拷贝到Windows Server上,在CMD命令行进行初始化
(5)在火狐上访问集群的hdfs路径
1)直接访问hdfs的50070页面时,会d出kerberos的客户端提示页面(前提是打开kerberos的客户端)
由于此时未将hdfs的ticket初始化所以不能正常访问,提示输入principal和密码
2)在集群的57服务器上找到hdfs的keytab文件hdfs.headless.keytab
3)在服务器上测试该keytab文件有效
kadmin.local
listprincs hdfs*
注意:可以使用listprincs列出的hdfs身份进行初始化
4)将hdfs.keytab文件拷贝到Windows机器上,通过CMD命令进行初始化
5)再次通过FireFox浏览器访问HDFS服务,正常访问
2.在此过程中遇到的问题:
(1)get ticket时,提示:Kerberos 5:Cannot find KDC for requested realm(error-1765328230)
原因是:在旧的集群10.247.33.57上创建的用户,但是本地的krb5.ini文件中配置的是新集群10.247.32.247的/etc/krb5.conf文件中的内容,所以提示该错误
解决办法:
修改本地的krb5.ini文件,复制老集群的文件
Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份验证。
这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够 相互认证 ,即客户端和服务器端均可对对方身份进行认证。
可以用于防窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。
密钥分发中心,负责管理发放票据,记录授权
Kerberos管理领域的标识。
当每添加一个用户或服务的时候需要向kdc添加一条principal,principal的形式为:主名称/实例名@领域名。
可以是用户名或服务名,可以是单词host,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体
可以理解为主机名
Kerberos的域
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)