我目前正在编写一个 puppet 模块来自动化将 RHEL 服务器加入 AD 域的过程,并支持 Kerberos。
目前,我无法通过 自动获取和缓存 Kerberos 票证授予票证kinit
。如果要手动完成此操作,我会这样做:
kinit [email protected]
这将提示输入 AD 用户密码,因此自动化执行此操作存在问题。
我如何才能自动完成这一操作?我发现有些帖子提到使用kadmin
AD 用户密码来创建数据库,但我没有成功。
答案1
我真笨,你可以简单地使用以下命令:
echo "password" | kinit aduser@REALM
答案2
虽然您可以将密码硬编码到自动化系统中,但更正确的 Kerberos 方法是为主体创建一个密钥表,然后使用它进行身份验证。 kinit
支持使用选项从密钥表进行身份验证-k -t <keytab-path>
。
keytab 的主要优点是它将凭证隔离在单独的文件中,并可由各种 Kerberos 软件直接使用(因此您不必添加代码来从单独的文件读取密码)。它也可以使用标准命令创建(使用 AD KDC,使用ktpass
)。如果您有 Linux KDC,则还有一些其他优点,例如,可以轻松地随机化存储在 keytab 中的密钥,而不是使用较弱的密码。