Kerberos常用命令用法

    科技2025-11-27  21

    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。

    Processed: 0.017, SQL: 9