如何自动化 kinit 进程以获取 Kerberos 的 TGT?

如何自动化 kinit 进程以获取 Kerberos 的 TGT?

我目前正在编写一个 puppet 模块来自动化将 RHEL 服务器加入 AD 域的过程,并支持 Kerberos。

目前,我无法通过 自动获取和缓存 Kerberos 票证授予票证kinit。如果要手动完成此操作,我会这样做:

kinit [email protected]

这将提示输入 AD 用户密码,因此自动化执行此操作存在问题。

我如何才能自动完成这一操作?我发现有些帖子提到使用kadminAD 用户密码来创建数据库,但我没有成功。

答案1

我真笨,你可以简单地使用以下命令:

echo "password" | kinit aduser@REALM

答案2

虽然您可以将密码硬编码到自动化系统中,但更正确的 Kerberos 方法是为主体创建一个密钥表,然后使用它进行身份验证。 kinit支持使用选项从密钥表进行身份验证-k -t <keytab-path>

keytab 的主要优点是它将凭证隔离在单独的文件中,并可由各种 Kerberos 软件直接使用(因此您不必添加代码来从单独的文件读取密码)。它也可以使用标准命令创建(使用 AD KDC,使用ktpass)。如果您有 Linux KDC,则还有一些其他优点,例如,可以轻松地随机化存储在 keytab 中的密钥,而不是使用较弱的密码。

答案3

根据手册页,您可以使用:

kinit --password-file="~/my.secret" [email protected]

因此您可能只需通过文件提供您的密码即可。

相关内容