kinit:获取初始凭据时预身份验证失败

问题描述 投票:0回答:1

我有一个用于创建 keytab 文件的 bash:

#!/bin/bash
 
user="username"
pass="password"
 
printf "%b" "add_entry -password -p [email protected] -k 1 -e aes128-cts-hmac-sha1-96\n$pass\nadd_entry -password -p [email protected] -k 1 -e aes256-cts-hmac-sha1-96\n$pass\nadd_entry -password -p [email protected] -k 1 -e arcfour-hmac-md5-exp\n$pass\nadd_entry -password -p [email protected] -k 1 -e des3-cbc-sha1\n$pass\nadd_entry -password -p [email protected] -k 1 -e des-cbc-md5\n$pass\nwrite_kt $user.keytab" | ktutil

但无法连接到 LDAP 服务器并出现此错误:

kinit:获取初始凭据时预身份验证失败

当我使用 kinit -V $user 时,没问题,我尝试多次从命令行创建 keytab,但在 keytab 登录时遇到相同的错误

ldap kerberos keytab
1个回答
0
投票
Kerberos 中的

aes128

aes256
 密码套件使用 salted PBKDF2 从密码中派生密钥。当您 kinit 时,将从 KDC 检索盐,但是当您手动创建密钥表时,将使用默认名称+领域盐 – 这在大多数情况下都可以工作,但如果用户帐户已被
重命名,则将不起作用其现有密钥仍将使用旧盐(基于其旧名称),至少在密码更改之前如此。

要处理这种可能性,请使用

-f

 选项 
add_entry

add_entry -password -p [email protected] -k 1 -e aes128-cts-hmac-sha1-96 -f
(

arcfour-hmac

 不使用盐;它处理直接 NTLM 哈希,所以它不存在这个问题 – 但另一方面,arcfour-hmac 是 RC4 的另一个名称,现在你可能不应该正在使用它。

我不记得

des3

des
密码套件使用哪种盐,但我真的怀疑你需要其中任何一个 - Windows根本不支持
des3
,仅支持
des
和单DES在
小时内即可破解,因此您也不想使用它。尽管如此,无论哪种方式,-f
选项都会对所有密码套件执行正确的操作。)


不要使用

massive printf,而是使用<<

heredoc:

ktutil <<EOF add_entry -password -p [email protected] -k 1 -e aes128-cts-hmac-sha1-96 $pass add_entry -password -p [email protected] -k 1 -e aes256-cts-hmac-sha1-96 $pass write_kt $user.keytab EOF
或者,您可以使用 

{ }

( )
 一次传输多个命令输出,而不是单个命令:

{ for etype in {aes128,aes256}-cts-hmac-sha1-96; do echo "add_entry -password -p [email protected] -k 1 -e $etype" echo "$pass" done echo "write_kt $user.keytab" } | ktutil
    
© www.soinside.com 2019 - 2024. All rights reserved.