1. 用 dnf 安装下面两个包 (sudo dnf install pam-u2f pamu2fcfg

    1. pam-u2f:这个安装包提供了 实现了U2F和FIDO2的PAM模块,提供了一种简单的方法,可以将Yubikey(或其他U2F/FIDO2符合的身份验证器)集成到您现有的基础架构中。
    2. pamu2fcfg:用于 获取 pam-u2f 通过安全密钥验证身份时需要的 “安全密钥的句柄和公钥”
  2. 禁用掉 authselect (因为我们要手动编辑 pam 文件)

    • sudo authselect opt-out(关于这个命令请见 authselect 的man手册)
  3. 直接去 /etc/pam.d/ 目录,编辑 你想改的服务的PAM 配置文件即可,修改后无需重启即可生效。

    • 例如:

      • 想为sudo指令设一个密钥认证通过即可免输密码,就在/etc/pam.d/sudo首行中添加auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue
      • 想为polkit认证服务设一个密钥认证通过即可免输密码(systemd、大部分桌面应用使用这个认证服务),就在/etc/pam.d/polkit-1文件首行中添加auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

        • /etc/pam.d/目录下找不到polkit-1的话就在/usr/lib/pam.d里面找,找到的话直接改即可,注意/usr/lib/一般被系统包管理器控制,你的更改可能会被包管理器覆盖掉,请注意一下。
    • 详见 pam-u2f 的官方文档
    • 配置前,请参考官方文档中的 Authorization Mapping Files 章节,使用 pamu2fcfg CLI工具 获取 pam-u2f 需要的密钥句柄和公钥 并保存在文件中。