自动更新 TGT

automate TGT renewal

我正在自动化需要访问 kerberized 资源的服务。 带密钥表的无密码 kinit 工作正常。然后连接资源 到使用 SASL。

有没有办法(可能是通过 GSSAPI 或 libkrb5)确保 TGT 存在 何时访问资源?每次访问前分叉 kinit 似乎是务实的事情。然而,两者之间存在明显的竞争 TGT 获取时间及其用于获取我想避免的 TGS。

我想像收到一个 fd 用于验证,其有效性是 保证直到它被用户关闭。

我宁愿远离像 sssd 这样的重型解决方案来自动更新 TGT.

答案原来是在 KRB5_CLIENT_KTNAME参数:

If no existing tickets are available for the desired name, but the name
has an entry in the default client keytab, the krb5 mechanism will
acquire initial tickets for the name using the default client keytab.

来自MIT Kerberos docs.

该 wiki 还有一个 write-up of the implementation