Menu Close

29.6. 为智能卡用户启用免密码 sudo

使用证书登录到 web 控制台后,您可能需要切换到管理模式(通过 sudo进行 root 权限)。如果您的用户帐户有密码,它可以用于对 sudo 进行身份验证。

另外,如果您使用 Red Hat Identity Management,您可以声明初始 Web 控制台证书身份验证,以对 sudo、SSH 或其他服务进行身份验证。为此,Web 控制台会在用户会话中自动创建 S4U2Proxy Kerberos ticket。

先决条件

流程

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

    例 29.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. 使用您的智能卡进行验证。

或者

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