美文网首页
kprop进行kerberos数据库同步时报错: /usr/sb

kprop进行kerberos数据库同步时报错: /usr/sb

作者: _火山_ | 来源:发表于2020-08-06 14:28 被阅读0次

    错误详情:
    /usr/sbin/kprop: Server rejected authentication (during sendauth exchange) while authenticating to server
    /usr/sbin/kprop: Key version is not available signalled from server
    Error text from server: Key version is not available

    原因:
    我查阅了一些资料,说是:kadmin.local -q "ktadd host/test" 这样使用会修改已创建的host/test的密码,从而导致版本不对应。

    然后呢,我就把principal的创建和删除流程重新走了一遍(重点:先删后建):
    1、先删除数据库中该principal:kadmin.local -q "delprinc host/test";
    2、然后重建principal,并在创建时指定密码和版本号:kadmin.local -q "ank -pw 123456 -kvno 1 host/test";
    -pw 指定principal的密码,-kvno 指定版本号;
    3、然后再重新导出keytab文件,并指定以不修改密码的方式导出:kadmin.local -q "ktadd -norandkey host/test";
    -norndkey 指导出keytab不会修改principal的密码。
    创建principal时指定的版本号是1,导出keytab后,使用klist -kt命令查看keytab中principal的版本号,可以看到依然是1。
    注:klist -k默认查看的是/etc/krb5.keytab,如果想查看其他的keytab文件,只需要指定keytab文件的路径即可,如下:
    klist -kt /home/test/test.keytab

    根据以上步骤做完后,然后再执行kprop -f /var/kerberos/krb5kdc/replKerberos slaveHost,这回就能同步成功了
    同步成功会提示:

    在测试成功的情况下,我又测试了一遍,复现了之前同步失败的现象,复现步骤如下:
    1)在同步成功的前提下,删除/etc/krb5.keytab文件:rm -f /etc/krb5.keytab;
    2)然后重新导出keytab文件,使用命令:kadmin.local -q "ktadd host/test",看清楚了哦,这里没用参数-norndkey,执行后,再使用klist -kt命令查看keytab文件,可以看到KVNO版本号变成了2,不是我创建principal时指定的1了,就是因为我没有指定-norandkey参数。

    然后再执行kprop -f /var/kerberos/krb5kdc/replKerberos slaveHost,可以看到又报这个错了:


    相关文章

      网友评论

          本文标题:kprop进行kerberos数据库同步时报错: /usr/sb

          本文链接:https://www.haomeiwen.com/subject/gzqglktx.html