首先安装 必要软件包
sudo apt install authselect pamu2fcfg fido2-tools libpam-u2f pcscd
由于gpg默认通过ccid直接访问硬件,但是如果其占用的话pcscd就读取不到了,让其使用pcscd
sudo nano /etc/gnupg/scdaemon.conf
添加
pcsc-driver /usr/lib/x86_64-linux-gnu/libpcsclite.so.1
disable-ccid
pcsc-shared
systemctl enable --now pcscd
关联yubikey
pamu2fcfg -u$(whoami) | sudo tee /etc/u2f_mappings # -p可以禁用触摸,插着就能授权,但是不安全
sudo chmod 600 /etc/u2f_mappings
设置u2f的pam模块
打开/etc/pam.d/common-auth

在auth [success=2 default=ignore] pam_unix.so nullok的前面添加
auth [success=done default=ignore] pam_u2f.so authfile=/etc/u2f_mappings cue
需要禁用密码登陆就注释pam_unix这行,配置成2步验证就把pam_u2f放到pam_unix后面
可选:用类似下列的命令查找并手动清理任何包含pam_pkcs11 pam_sss 其他pam_u2f的内容,避免gdm自带的pkcs11智能卡登录干扰,建议仅注释
grep -R pam_u2f /etc/pam.d
然后通过sudo -i测试确认可用
好的请爽用