Kerberos常用命令用法

1. Kerberos简介

      Kerberos就是一种网络认证的协议,提供了一种登录认证的方法,常用在大数据集群中hadoop相关组件中的安全认证功能,和Kerberos类似的还有ldap。Kerberos主要包括认证服务器(AS),客户端和服务器。Principal是相当于用户名,是客户端和服务器的一个唯一名字,keytab文件是加密的认证文件,一般有Principal和keytab为后缀的认证文件就可以了。认证的时候很少直接使用密码。

2. kerberos管理员常用命令

2.1 登录Kerberos Server命令

     在Krb5 server所在机器并且当前用户是root的话,可以使用kadmin.local免密码进入。如果报错,多半是安装了多个Kerberos版本导致的。

     登录Kerberos Server服务,命令如下:

     root用户:

    [root@hadoop60 ~]# kadmin.local

    非root用户:

   [root@hadoop60 ~]# kadmin.local   用户名

   由于版本问题,我的需要制定具体的命令路径,服务器上有多个版本的kerberos

[root@hadoop60 ~]# /usr/sbin/kadmin.local
Authenticating as principal yarn/admin@XXX.COM with password.
kadmin.local:  

      开始我的机器上的报错信息(其中admin@XXX.COM,XXX.com只是为了隐藏实际的公司名称而已,勿怪)如下所示:

[root@hadoop60 ~]# kadmin.local
Authenticating as principal yarn/admin@XXX.COM with password.
kadmin.local: Unable to load requested database module 'db2': plugin symbol 'kdb_function_table' not found while initializing kadmin.local interface
[root@hadoop60 ~]# which kadmin.local 
/usr/local/sbin/kadmin.local
[root@hadoop60 ~]# ll /usr/sbin/kadmin.local 
-rwxr-xr-x 1 root root 77552 Apr 13  2018 /usr/sbin/kadmin.local
[root@hadoop60 ~]# 

从上面可以看出,有多个版本的kadmin.local命令,因此我使用了/usr/sbin/kadmin.local

2.2 列出所有Kerberos用户

列出Principal: list_principals, listprincs命令

2.3 添加Kerberos用户

命令:add_principal, addprinc

命令格式:addprinc [options] principal

主要options

  • -randkey

       随机生成一个值作为principal的key

  • -pw

       设置密码,此选项一般用在脚本中。

例子:

    addprinc -pw password test60@DOMAIN.COM

    addprinc -randkey test60@DOMAIN.COM

详细的Options

kadmin.local:  addprinc
usage: add_principal [options] principal
        options are:
                [-randkey|-nokey] [-x db_princ_args]* [-expire expdate] [-pwexpire pwexpdate] [-maxlife maxtixlife]
                [-kvno kvno] [-policy policy] [-clearpolicy]
                [-pw password] [-maxrenewlife maxrenewlife]
                [-e keysaltlist]
                [{+|-}attribute]
        attributes are:
                allow_postdated allow_forwardable allow_tgs_req allow_renewable
                allow_proxiable allow_dup_skey allow_tix requires_preauth
                requires_hwauth needchange allow_svr password_changing_service
                ok_as_delegate ok_to_auth_as_delegate no_auth_data_required
                lockdown_keys

where,
        [-x db_princ_args]* - any number of database specific arguments.
                        Look at each database documentation for supported arguments
kadmin.local:  

2.4 修改Principal用户信息

相关命令:modify_principal, modprinc

命令格式:modprinc [options] principal

kadmin.local:  modprinc
usage: modify_principal [options] principal
        options are:
                [-x db_princ_args]* [-expire expdate] [-pwexpire pwexpdate] [-maxlife maxtixlife]
                [-kvno kvno] [-policy policy] [-clearpolicy]
                [-maxrenewlife maxrenewlife] [-unlock] [{+|-}attribute]
        attributes are:
                allow_postdated allow_forwardable allow_tgs_req allow_renewable
                allow_proxiable allow_dup_skey allow_tix requires_preauth
                requires_hwauth needchange allow_svr password_changing_service
                ok_as_delegate ok_to_auth_as_delegate no_auth_data_required
                lockdown_keys

where,
        [-x db_princ_args]* - any number of database specific arguments.
                        Look at each database documentation for supported arguments
kadmin.local:  

2.5 修改Principal密码

相关命令:change_password, cpw

kadmin.local:  cpw
usage: change_password [-randkey] [-keepold] [-e keysaltlist] [-pw password] principal
kadmin.local:  

例如:

2.6 删除Principal信息

相关命令:delete_principal, delprinc

kadmin.local:  delprinc
usage: delete_principal [-force] principal
kadmin.local:  

例如:

2.7 生成keytab认证文件

kadmin.local:  xst
Usage: ktadd [-k[eytab] keytab] [-q] [-e keysaltlist] [-norandkey] [principal | -glob princ-exp] [...]
kadmin.local:  

例如:

3. Kerberos普通用户常用命令

3.1 Principal和密码登录Kerberos获取票据credentials

通过用户名和密码登录,获取缓存票据

3.2 通过keytab认证文件获取Kerberos获取票据credentials

与3.1节的方法,差异不大,此步骤必须先生成keytab文件而已。

3.3 列出所有的Kerberos票据credentials信息

主要信息:有效开始时间,过期时间,principal,如果不知道keytab的principal名,可以通过如下命令

klist -k xxx.keytab查看

3.4 销毁kerberos票据credentials

相关命令:kdestroy

3.5 更新Kerberos票据credentials信息

相关命令:kinit -R

更新缓存票据,有多重方法,可以先销毁,然后重新获取。也可以直接更新

总结

        上面是一些kerberos认证常用的命令,无论你使用CDH还是HDP版本的hadoop环境,生产环境中少不了kerberos认证,大数据环境中开启了kerberos认证,则需要分配principal,生成keytab文件给别人,普通用户只有使用keytab加密文件才能提交Spark程序,Hive或者访问hdfs。

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值