我正在配置一些服务器以使用 LDAP(通过 PAM)来验证用户身份。此外,我使用 pam_group 将所有用户添加到某些系统组,例如音频/视频/vboxusers/....
我的 PAM 配置适用于大多数服务(su、login 和 sudo 都考虑到 pam_group),但不适用于 SSH。具体来说,当我使用公钥进行身份验证时,不会从 /etc/security/group.conf 添加组,但当我使用密码进行身份验证时,则会添加组。
环顾四周,我发现 SSH 公钥身份验证绕过了 PAM 堆栈并自行设置用户凭据,因此它忽略了 PAM 特定的配置,例如 pam_group。奇怪的是,LDAP 组(通常由 pam_ldap 设置)在所有情况下都会设置,无论是否有密码。
我希望我的用户的用户体验尽可能可预测,以便他们始终是同一组组的成员,无论其身份验证方法如何。使用 pubkey 身份验证时,是否有任何方法可以配置 SSH 以从 /etc/security/group.conf 添加组?
提前致谢,
答案1
可能不会。
这手册页pam_group
说:
只有授权提供了模块类型。
由于 SSH 在使用公钥时不使用 PAM 进行身份验证,因此auth
不会使用这些模块。
至于为什么 pam_group
只能作为一个auth
模块工作,而不是作为一个session
模块,我不能说。