为用户设置 Keytab 失败:“kinit:获取初始凭证时密码不正确”

为用户设置 Keytab 失败:“kinit:获取初始凭证时密码不正确”

我有一组运行 CentOS 7.3 的机器。通过使用 FreeIPA 4.4,以统一的方式使用 Kerberos、DNS、LDAP 等。

我有一个运行自动化测试的特定用户。因此,该用户需要能够在不输入密码的情况下获得票据授予票据。我曾尝试通过创建密钥表并有效地“预先输入”密码来实现这一点。但是,我无法基尼特使用keytab,如下所示。

从 KDC 获取密钥版本号 (kvno)

[[email protected] ~]# kadmin.local -q 'get_principal [email protected]'
Authenticating as principal root/[email protected] with password.
Principal: [email protected]
Expiration date: [never]
Last password change: Mon Jul 16 06:54:59 CDT 2018
Password expiration date: Tue Jul 23 06:54:59 CDT 2019
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon Jul 16 06:54:59 CDT 2018 ([email protected])
Last successful authentication: Mon Jul 23 11:03:38 CDT 2018
Last failed authentication: Mon Jul 23 14:40:57 CDT 2018
Failed password attempts: 1
Number of keys: 2
Key: vno 3, aes256-cts-hmac-sha1-96:special
Key: vno 3, aes128-cts-hmac-sha1-96:special
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH
Policy: [none]

在客户端机器上使用上面的 KVNO 创建 KEYTAB

[email protected]$ cd /home/myuser
[email protected]$ mkdir .krb5
[email protected]$ chmod 700 .krb5
[email protected]$ cd /home/myuser/.krb5
[email protected]$ ktutil
ktutil:  addent -password -p [email protected] -k 3 -e aes256-cts
Password for [email protected]:
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    1                    [email protected]
ktutil:  wkt myuser.keytab
ktutil:  exit

列出我们刚刚在客户端机器上创建的 KEYTAB

[email protected]$ klist -kte myuser.keytab
Keytab name: FILE:myuser.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 07/23/2018 14:33:30 [email protected] (aes256-cts-hmac-sha1-96)

尝试在客户端机器上使用 KEYTAB

[email protected]$ klist
klist: Credentials cache keyring 'persistent:4866486744:krb_ccache_rGHfj38' not found
[email protected]$ kinit [email protected] -k -t /home/myuser/.krb5/myuser.keytab
kinit: Password incorrect while getting initial credentials

我在为该用户设置密钥表时哪里出错了?

答案1

我仍然不确定为什么使用工具在客户端上不起作用,但是使用本地kadmin在服务器上执行:

kadmin.local
kadmin.local: ktadd -k myuser.keytab -norandkey [email protected]
kadmin.local: exit

将此文件安全地移动到客户端上的安全目录。

在客户端上,按如下方式使用此 keytab 文件:

kinit -k -t myuser.keytab [email protected]

相关内容