在我管理的系统中,除了人类用户帐户之外,我们还有许多与角色、软件和特定数据相关的帐户。
通过使用.k5login
主目录中的文件,可以使用 ssh 以不同用户身份连接到不同的计算机。使用 freeipa 可以添加 sudo 规则,以便特定组的成员可以更改为特定角色帐户。但我想直接使用 ssh 启用相同的功能。这在许多情况下更方便,尤其是在涉及 X 转发之类的事情时。是否可以.k5login
通过 freeipa 将文件中的数据直接存储在 LDAP 中?
我也会考虑其他可能的解决方案,比如从被允许访问的用户的公钥组成 SSH authorized_keys(似乎在 LDAP 中)。
答案1
它没有在任何地方实现,因此不可用。但是,我建议不要使用这种方法。除了方便之外,您将失去对所执行操作的审核。使用 sudo 规则仍然允许您保留对 X 转发的访问(它几乎是对通过环境变量宣传的内容的套接字访问)。但是,您获得的是一组针对此类访问的审核事件。
使用 Fedora 35+ 或 RHEL 8.5+ 中的 SSSD,您还可以获得 pam_sss_gss.so PAM 模块,该模块允许使用您已有的 Kerberos 票证对 PAM 服务进行身份验证,因此这可能会使其在您没有密码但使用 PKINIT(智能卡)的情况下正常工作。
简而言之,虽然实现基于组的 SSH 密钥访问可能很诱人,但在我看来,保持登录和角色转换事件的审计可用更为重要。
答案2
我不知道有任何方法可以使用 ldap 共享 .k5login。
但是,使用 ldap 也可以获得authorized_keys
类似的功能。如果您使用 sssd,请查看sss_ssh_authorizedkeys
命令(AlmaLinux 8.5 上的 sssd-common 包)和AuthorizedKeysCommand
sshd_config 选项。
对于普通的 ldap 功能,请查看ssh-ldap-helper
程序。它是 openssh-ldap 包(同一发行版)的一部分。