# 安装依赖

Debian 默认没有安装指纹依赖包,需要手动安装

1
sudo apt install fprintd libpam-fprintd

fprintd 库用于让系统支持指纹传感器
libpam-fprintd 库用于配置系统身份认证方式

# 安装指纹传感器驱动

一般传感器厂商会提供 deb 包或者使用通用驱动

1
sudo apt install deb驱动包文件路径

# 添加指纹

设置 -> 用户 中,点击用户后会有一栏 配置指纹身份认证 ,点击后即可添加指纹。

添加指纹

当然也可以通过 fprintd-enroll 命令来添加指纹。

# 添加身份认证方式

输入下面命令进入 pam 管理页面

1
sudo pam-auth-update

使用方向键以及空格键勾选 Fingerprint authentication ,回车完成设置。

# 修改登陆逻辑(KDE 桌面需要)

因为登陆界面认证时会将密码用于解锁系统密码库,指纹认证没有提供密码,导致卡登陆界面(无论指纹或者密码是否正确)。

可能是 KDE 的 SDDM 逻辑问题,即使注释掉解锁密码库,在登陆界面指纹验证失败后也会导致卡登陆界面(不会再次调起指纹并且输入正确密码无效),指纹认证成功则不会卡。

整个逻辑就像并没有为多认证方式进行设计,或者根本没有考虑指纹登陆的情况一样(虽然设置界面确实是写了 暂不支持使用指纹登陆系统 )。

不过系统终端以及锁屏界面均可以通过指纹或密码的方式完成身份验证。

因此这里需要手动取消掉登陆界面的指纹功能来避免卡登陆。

1
sudo nano /etc/pam.d/sddm

找到 @include common-auth 一行注释掉,该行引用的配置包括了指纹认证的逻辑

因为 common-auth 被很多 pam 配置引用,因此我们这里不动它,而是为 sddm 手动构建一个 auth 流程。

在被注释的 common-auth 一行下添加下面内容

1
2
3
auth    [success=1 default=ignore]      pam_unix.so nullok try_first_pass
auth requisite pam_deny.so
auth required pam_permit.so

内容其实就是未开启指纹认证的时候 common-auth 的文件内容。

这样在开机登陆时使用原先的密码进行登陆,在终端和锁屏界面,或者其他需要身份认证的地方都可以使用指纹和密码进行认证。