如何为 kinit(获取 Kerberos 票证)配置默认主体?

如何为 kinit(获取 Kerberos 票证)配置默认主体?

当使用kinit获取 Kerberos 票证时,我已将其配置为使用默认领域,例如GERT.LAN通过编辑/etc/krb5.conf

[libdefaults]
        default_realm = GERT.LAN

这非常好,因为我不必一直在命令行上提供这些信息。

⟫ kinit
[email protected]'s Password:

但是,我的本地用户名与gert远程用户名不匹配gertvdijk。现在我仍然必须提供完整的主体名称作为参数。如果这只是 kinit,我可以创建一个 bash 别名,但似乎有更多 Kerberos 工具会尝试我的本地用户名。例如凭证不允许我使用默认主体以外的其他主体。

gert所以,基本上,我想要的是在本地用户和远程主体之间创建一个映射[email protected]

讽刺的是,当使用更复杂的 PAM 设置时,我能够实现这一点。在krb5.conf

[appdefaults]
        pam = {
                mappings = gert [email protected]
        }

但是我不想再使用 Kerberos PAM 模块了,因为我已经多次因为认为 Kerberos 服务器无法访问而将自己锁定在外,而我正尝试输入本地密码...

长话短说,有没有办法配置默认主体或本地用户名的映射?

答案1

可以在 ~/.k5identity 中设置默认主体

$ cat .k5identity
[email protected]

然后 kinit 将使用它作为默认身份。

答案2

我认为目前没有解决方案。摘自 kinit 手册页:

kinit obtains and caches an initial ticket-granting ticket for principal.
If principal is absent, kinit chooses an appropriate principal name based
on existing credential cache contents or the local username of the user in‐
voking kinit. Some options modify the choice of principal name.

这意味着您必须在第一次时至少使用一次选项,稍后将使用现有(但可能已过期)票证中的用户。

但至少你可以有一个解决方法,例如:

alias kinit='/usr/bin/kinit $KRB_USER'

KRB_USER如果未定义,则恢复为原始状态。

答案3

使用默认领域并使用用户映射,如下所示/etc/krb5.conf

[libdefaults]
    default_realm = GERT.LAN

[realms]
    GERT.LAN = {
        auth_to_local_names = {
            gert = gert.vandijk
        }
    }

现在kinit/kpasswd将在以本地用户身份调用它时映射它并将其映射到域用户名。

相关内容