kerberos配置方法

news/2024/7/7 19:21:13

为什么80%的码农都做不了架构师?>>>   hot3.png

客户端配置

kerberos客户端配置,理论上很简单。安装客户端程序,然后拿到正确的kerberos配置信息,理论上就可以使用kerberos来验证身份了。下面以red hat enterprise server 6.5为例,介绍一下kerberos客户端配置。

  1. 观察当前配置。

    在/etc/下发现了空的krb5.conf文件,怀疑已经预装kerberos客户端。

    执行klist,发现可以执行,证明客户端已经装好。

  2. 获取krb5.conf文件

    从一台kerberos服务器获取配置文件

    scp root@kerberos-master:/etc/krb5.conf /etc/krb5.conf
    
  3. 执行kinit

    执行kinit来验证身份,结果提示错误。

    #kinit mac@MCIPT.COM 
    kinit: Included profile directory could not be read while initializing Kerberos 5 library
    
  4. 错误分析

    $ strace kinit
    ...
    stat("/etc/krb5.conf.d/", 0x7ffd83a26fc0) = -1 ENOENT (No such file or directory)
    close(3)                                = 0
    write(2, "kinit: Included profile director"..., 52kinit: Included profile directory could not be read ) = 52
    write(2, "while initializing Kerberos 5 li"..., 37while initializing Kerberos 5 library) = 37
    write(2, "\n", 1
    )                       = 1
    exit_group(1)                           = ?
    +++ exited with 1 +++
    

    原来是/etc/krb5.conf.d目录没有建立。建立之后,故障排除

创建keytab文件

Keytab文件可用于应用帐号免密获取ticket。因为一般情况下,应用无法通过交互的方式去更新kerberos ticket。采用keytab,一条命令完成更新,是常规做法。接下来就介绍一下,如何制作keytab文件。

  1. Windows方案。

    如果采用AD作为KDC,那么就可以在AD端,通过执行ktpass命令,来生成keytab文件。 在active directory 端,打开dos 窗口,执行:

    #1.创建用户 mac@MCIPT,对应密码为 real_password
    ktpass /princ mac@MCIPT.COM /pass real_password /ptype KRB5_NT_PRINCIPAL /out mac.keytab
    
    #KDC中,对应的命令是
    #kadmin.local -q "addprinc -randkey mac@MCIPT.COM"
    #kadmin.local -q "xst -k /etc/security/keytabs/mac.keytab mac@MCIPT.COM"
    

    这里的real_password,一定是mac这个用户的真实密码。随便填,使用kinit的时候就会提示 preauthentication 失败。

  2. Linux方案

    通过ktutil命令,来生成一个所需的keytab文件。

    # ktutil
    ktutil:add_entry -password -p mac@MCIPT.COM -k 1 -e arcfour-hmac-md5 
    ktutil:wkt mac.keytab    
    
  3. 验证:

        kinit mac@MCIPT.COM -k -t mac.keytab
    

转载于:https://my.oschina.net/pearma/blog/1456948


http://www.niftyadmin.cn/n/4544271.html

相关文章

java I/O系统(1)-File类

引言 自己对java的IO系统不是非常了解。所以我想进一步一点点去整理好它。在本篇博文中,我们详细介绍一下File类的意义,包括它很大部分的功能。笔者目前整理的一些blog针对面试都是超高频出现的。大家可以点击链接:http://blog.csdn.net/u01…

java I/O系统(2)-装饰器模式

引言 IO系统是使用了装饰器模式的典型。所以对装饰器模式的深入研究对IO系统的理解肯定大有裨益。在本文中会详细介绍装饰器模式,会用以demo展示,同时会举出例子在IO系统中是如何呈现了这种模式,最后,我们探讨一下装饰器模式与代…

mysql报错Operand should contain * column解决办法

为什么80%的码农都做不了架构师?>>> 使用了sql语句处理某些内容。当执行某个语句时,Mysql报错误:Operand should contain 1 column 字面意思是,需要有1个数据列。 解决办法:将查询sql的查询结果改为所需的…

java I/O系统(3)-字节流与字符流

引言 在java的IO系统中,对资源的操作分为两类:字节流与字符流。如果延承inputStream与outputStream就是字节流,如果延承reader与writer就是字符流,那么他们之间到底有什么区别呢?在本篇博文中会列出IO系统的所有操作类…

java I/O系统(4)-RandomAccessFile类

引言 RandomAccessFile类是在java.io中的一个工具类,它独立于字符流与字节流之外,自成一派。它的核心功能就是random功能。他可以随机访问到文件的任意位置的资源,对于超大文件的局部修改有很大的帮助。在本篇博文中详细介绍RandomAccessFil…

es7 fetch解决异步嵌套问题

fetch API解决异步嵌套问题 我们昨天学习了async和await,知道他是为了解决浏览器异步获取的的!但是我们用fetch api的话方法会更加的简单async和await解决异步嵌套 function ajax(url){return new Promise(function(reslove,reject){let xmlHttpnew XMLH…

Logrus 日志库

为什么80%的码农都做不了架构师?>>> 官网 示例 package logsimport ("os"log "github.com/sirupsen/logrus""fmt" )var Environment stringfunc init() {if Environment "production" {log.SetFormatter(&…

java I/O系统(5)-Buffer类

引言 在java的IO系统中,在JDK1.4的时候引入了新的IO系统,也就是我们常说的nio,它的主要功能是提高速度。在本篇博文中,详细介绍关于nio的构造:通道和缓冲器,核心了解ByteBuffer,因为它是唯一与…