如何自动化 kinit 过程以获得 Kerberos 的 TGT?

tor*_*re- 10 linux active-directory kerberos authentication

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

目前,我在通过kinit. 如果这是手动完成的,我会这样做:

kinit aduser@REALM.COM
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能自动化这个?我发现一些帖子提到使用kadmin其中的 AD 用户密码创建数据库,但我没有运气。

tor*_*re- 19

愚蠢的我,你可以简单地使用以下命令:

echo "password" | kinit aduser@REALM
Run Code Online (Sandbox Code Playgroud)

  • 或者用您的密码打印一张海报并将其挂出!以纯文本形式存储密码是禁忌 (16认同)

小智 18

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

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

  • Keytab 似乎绝对是要走的路。如果您在 kadmin 中生成它,如果您不想使现有密码无效,请确保在 ktadd 中使用 `-norandkey` 标志。 (2认同)