32.6. 为智能卡用户启用无密码的 sudo 验证

您可以使用 Web 控制台为智能卡用户配置 sudo 和其他服务的无密码身份验证。

另一种选择是,如果您使用红帽身份管理,您可以将初始 Web 控制台证书身份验证声明为可信,以向 sudo、SSH 或其他服务进行身份验证。为此,Web 控制台会在用户会话中自动创建 S4U2Proxy Kerberos ticket。

先决条件

流程

  1. 设置约束委派规则,以列出托管票据可以访问哪些主机。

    例 32.1. 设置约束委派规则

    Web 控制台会话运行主机 host.example.com,并应受信任,以通过 sudo 访问自己的主机。此外,我们还添加了第二个可信主机 - remote.example.com

    • 创建以下委派:

      • 运行以下命令添加特定规则可以访问的目标机器列表:

        # 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
  2. 在对应服务中启用 GSS 身份验证:

    1. 对于 sudo,在 /etc/sssd/sssd.conf 文件中启用 pam_sss_gss 模块:

      1. 以 root 用户身份,将域的条目添加到 /etc/sssd/sssd.conf 配置文件。

        [domain/example.com]
        pam_gssapi_services = sudo, sudo-i
      2. 在第一行启用 /etc/pam.d/sudo 文件中的模块。

        auth sufficient pam_sss_gss.so
    2. 对于 SSH,将 /etc/ssh/sshd_config 文件中的 GSSAPIAuthentication 选项更新为 yes
警告

从 Web 控制台连接到远程 SSH 主机时,委派的 S4U 票据不会被转发到远程 SSH 主机。使用您的票据在远程主机上向 sudo 进行身份验证将无法正常工作。

验证

  1. 使用智能卡登录到 web 控制台。
  2. Limited access 按钮。
  3. 使用您的智能卡进行验证。

或者:

  • 尝试使用 SSH 连接到其他主机。