错误详情:
/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,可以看到又报这个错了:
网友评论