7.5. 为智能卡用户启用免密码 sudo 身份验证
您可以为智能卡用户启用免密码 sudo 身份验证。这可让用户在不输入密码的情况下执行管理任务,进一步提高操作效率和安全性。
另外,如果使用 RHEL 身份管理,您可以将初始 Web 控制台证书声明为使用 sudo、SSH 或者其他服务进行身份验证。为此,Web 控制台会在用户会话中自动创建 S4U2Proxy Kerberos ticket。
在以下示例中,Web 控制台会话在 host.example.com 上运行,并被信任,以通过 sudo 访问自己的主机。此外,示例步骤添加第二个可信主机 - remote.example.com。
先决条件
- 身份管理已安装。
- Active Directory 在身份管理的跨林信任中连接。
- 您的智能卡已设置为登录到 web 控制台。如需更多信息 ,请参阅使用 Web 控制台配置智能卡验证。
流程
设置约束委派规则,以列出托管票据可以访问哪些主机。
创建以下示例委派:
输入以下命令添加特定规则可以访问的目标机器列表:
# ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM要启用 Web 控制台会话(HTTP/principal)来访问该主机列表,请使用以下命令:
# ipa servicedelegationrule-add cockpit-delegation # ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/host.example.com@EXAMPLE.COM # ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
在对应服务中启用 GSS 身份验证:
对于
sudo,在/etc/sssd/sssd.conf文件中启用pam_sss_gss模块:以
root用户身份,将域的条目添加到/etc/sssd/sssd.conf配置文件中。[domain/example.com] pam_gssapi_services = sudo, sudo-i在第一行启用
/etc/pam.d/sudo文件中的模块。auth sufficient pam_sss_gss.so
对于 SSH,将
/etc/ssh/sshd_config文件中的GSSAPIAuthentication选项更新为yes。警告从 Web 控制台连接到远程 SSH 主机时,委派的 S4U 票据不会被转发到远程 SSH 主机。使用您的票据在远程主机上向
sudo进行身份验证将无法正常工作。
验证
- 使用智能卡登录到 web 控制台。
- 点 Limited access 按钮。
- 使用您的智能卡进行验证。
- 或者:尝试使用 SSH 连接到其他主机。