使用 Kerberos 密钥表自动加入 Active Directory (AD)?

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

我正在使用

realmd
加入活动目录域,并且使用命令时成功:

sudo realm join -U [email protected] domain.com

它提示我输入密码,并且有效。

我现在正在尝试使该过程自动化。我想运行上述命令(或其某些变体)而不提示输入密码。

我尝试创建 Kerberos 密钥表。我运行了

kinit
命令,我可以看到用户使用
klist
。 来自
klist
的有用数据:

Default principal: [email protected]
Service principal: krbtgt/[email protected]

我运行了命令

sudo realm join
希望它能够读取密钥表,但我得到以下信息:

$ sudo realm join
Password for Administrator:

系统提示我输入管理员密码,该密码不是我的用户。根据我在网上找到的资料,如果已经设置了 kerberos,它不应该提示我输入密码。我觉得

realmd
甚至没有读取初始化的用户。你知道我该如何解决这个问题吗?我还应该在 kerberos 或 realmd 配置级别做其他事情吗?

active-directory ldap kerberos
1个回答
0
投票

管理员凭据仅用于创建计算机帐户。因此,不要将管理员凭据分发到每台计算机(这是有风险的),而是在本地系统上使用

adcli
来预先创建计算机帐户 - 这允许您使用
--one-time-password
--no-password
加入。

但是,如果您确实想使用密钥表,请记住 Kerberos 票证缓存通常是针对每个用户的,而 sudo 的全部目的是切换到不同的用户。所以仅仅

klist
起作用还不够;您还需要
sudo klist
才能工作 – 这可能需要指定
KRB5CCNAME=
以便 klist/realm 在不同 UID 下运行时可以找到您的 ccache。

sudo KRB5CCNAME=FILE:/tmp/krb5cc_1234 klist
sudo KRB5CCNAME=FILE:/tmp/krb5cc_1234 realm join

默认缓存位置显示在您的

klist
中。如果您的操作系统默认使用“KEYRING”缓存,您首先需要手动切换到基于文件的缓存,因为密钥环缓存不能跨 UID 使用。

export KRB5CCNAME=FILE:/tmp/krb5cc_admin
kinit -k -t admin.keytab
sudo KRB5CCNAME="$KRB5CCNAME" klist
© www.soinside.com 2019 - 2024. All rights reserved.