如何设置 Ubuntu 使用 Yubikey 解锁屏幕保护程序

如何设置 Ubuntu 使用 Yubikey 解锁屏幕保护程序

当我有此密钥时:

https://support.yubico.com/support/solutions/articles/15000006900-security-key-by-yubico

当我将其拔出并离开计算机时,我想使用它来锁定屏幕,当我回来时,我想通过将 yubikey 插入 USB 插槽来解锁屏幕 - 我想触发验证,确保它确实是我的密钥,而且我不想输入密码。

我正在看这里

https://www.dalemacartney.com/2013/01/14/locking-and-unlocking-the-gnome3-session-with-a-yubikey/

这似乎是一个好的开始,但是在那里使用的脚本中有序列号检查,我想进行公钥/私钥验证而无需额外输入密码。

ykinfo -q -s命令可以获取密钥的序列号。是否有 CLI 实用程序可以触发 yubikey 身份验证?

答案1

在 ubuntu 18.04 + Unity7 上我需要添加:

auth sufficient pam_u2f.so

@include common-auth

在文件 /etc/pam.d/unity 中

当我插入 ubikey 时,能够通过密码或 yubikey 解锁屏幕 - 这并不是我所期望的。我想插入 ubikey 来查看身份验证查询,然后进行身份验证。此外,身份验证成功后,我需要单击“解锁”按钮,但这似乎没有必要。

第二部分是拔出 yubikey 后锁定屏幕。为了捕获拔出 yubikey 的情况,我需要创建文件 /etc/udev/rules.d/95-yubikey-screen-lock.rules,内容如下:

ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1050/120/502", RUN+="/tmp/test.sh"

并使用命令让操作系统使用它:

sudo udevadm control --reload

可以通过运行获取 ENV{PRODUCT} 值

sudo udevadm monitor --kernel --property --subsystem-match=usb | grep PRODUCT

并将 yubikey 从 USB 中拔出。

/tmp/test.sh 脚本包含:

su - lmlich -c "gnome-screensaver-command -l"

它将以 root 身份运行,并将以用户 lmlich(即操作系统中的我)的身份运行命令以锁定我发行版中的屏幕。

这样就完成了。

但是,组合起来后,拔出 yubikey 后,锁屏会显示密码挑战。当我输入错误的密码时,我可以使用 yubikey 进行身份验证。

这是一个解决方案,但不是一个好的解决方案。

相关内容