我正在使用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 配置级别上,我还应该做些什么吗?
管理员凭据仅用于创建计算机帐户。因此,您无需将域管理员凭据分发给每台计算机(这样做有风险),而是
adcli
在本地系统上使用以预先创建这些计算机帐户 - 这样您就可以使用--one-time-password
或加入--no-password
。但是,如果您确实想使用 keytab,请记住 Kerberos 票证缓存通常是针对每个用户的,而 sudo 的全部目的就是切换到不同的用户。因此,仅仅
klist
工作是不够的;您还需要sudo klist
工作——这可能需要KRB5CCNAME=
指定,以便 klist/realm 可以在不同的 UID 下运行时找到您的 ccache。默认缓存位置显示在您的 中
klist
。如果您的操作系统默认为“KEYRING”缓存,则您首先需要手动切换到基于文件的缓存,因为密钥环缓存不能跨 UID 使用。