如何在 Ubuntu 和其他 Linux 发行版上设置人脸解锁
缺少 Linux 系统上的 Windows Hello 解锁方式吗?了解如何在 Ubuntu 和其他 Linux 发行版上设置面部解锁。
尽管存在种种担忧,面部识别仍然越来越受到消费者的欢迎。大多数最新的 Android 和 iOS 设备都具有通过面部验证解锁设备的功能。
一旦你习惯了面部解锁或指纹解锁,输入密码就会感觉是一项乏味、无聊的任务。
在Windows操作系统上,微软提供了Windows Hello,它允许基于您的面部进行即时身份验证。
在 Linux 上,面部解锁不是内置功能。据我所知,还没有 Linux 发行版提供开箱即用的面部解锁功能。
但俗话说,有壳;有壳。有一种方法。
在 Linux 中,您经常会找到可以为特定任务配置的替代事物和工具。还记得我写的关于在 Linux 和 Raspberry Pi 设备之间共享鼠标和键盘的教程吗?
在本教程中,我将向您展示如何在 Ubuntu 中设置面部解锁。您也可以将本教程用于其他 Linux 发行版。
您需要熟悉终端和 Linux 命令,因为您将使用 Linux 命令行工具。
Howdy:适用于 Linux 的 Windows Hello 风格的面部识别身份验证系统
Howdy 是一款开源软件,让您能够通过人脸识别登录 Linux 系统。将其视为 Linux 的开源 Windows Hello 替代品。在这里,您的数据存储在您的本地计算机上。
Howdy 使用内置红外发射器和网络摄像头组合来识别您的脸部。它是使用 OpenCV 和 Python 构建的。
Howdy 使用 PAM 身份验证系统,这意味着您不仅可以通过面部登录系统,还可以用于 sudo、su 以及大多数其他需要使用帐户密码的情况。然而,在我的测试中,它无法解锁 Ubuntu 中的密钥环。
在本教程中,我将向您展示如何安装 Howdy 以及如何将其设置为面部识别。这个过程并不太复杂,但是使用这里的终端应该不会太不舒服。
在 Ubuntu 和其他 Linux 发行版上安装 Howdy
Howdy 的开发者提供了一个方便的 PPA,使得在基于 Ubuntu 的发行版上安装 Howdy 变得更加容易。
打开终端并在 Ubuntu 上使用以下命令:
sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy
Howdy是一个大软件,它安装了大量的软件库。对我来说,安装后显示大约 140 MB 的下载大小和 600 MB 的磁盘大小要求。
在安装过程中,它会要求您选择快速、平衡和安全身份验证类型。我在这一步选择了平衡,因为我不想等待太久,但也不希望它不太安全。
在安装过程中,它抱怨在 PATH 中添加 /usr/local/bin 但对我来说它已经在那里了。您可以针对您的系统进行验证。
在其他 Linux 发行版上安装 Howdy
对于 Debian,您可以下载 DEB 文件。 Arch/Manjaro 用户可以从 AUR 安装它。
Fedora 用户可以选择使用 COPR 存储库:
sudo dnf copr enable luya/howdy
sudo dnf install howdy
openSUSE 用户可以在此处找到安装说明。
作为最后的手段,您可以在其 GitHub 存储库上获取源代码。
由于我在本教程中使用 Ubuntu 20.04,因此某些步骤可能会使用 apt 命令,但我相信您可以在这些步骤中使用发行版的包管理器。
使用 Howdy 在 Ubuntu 和其他 Linux 上设置面部解锁
让我们看看如何设置面部识别。
更改配置文件
在使用 Howdy 之前,您应该更改配置文件以指定您的网络摄像头设备。
在大多数 Linux 系统上,/dev/video0 应该是网络摄像头的设备,但您应该使用 v4l2-ctl 命令来确保它。
首先安装 v4l-utils:
sudo apt install v4l-utils
现在使用 v4l2-ctl 命令列出您的设备
abhishek@linux:~$ v4l2-ctl --list-devices
Integrated_Webcam_HD: Integrate (usb-0000:00:14.0-5):
/dev/video0
/dev/video1
为什么有两个(或更多)视频设备?您必须检查设备的功能。该设备应该具有视频捕获功能,而不仅仅是元数据捕获。
您可以使用 v4l2-ctl --device=/dev/video0 --all 等命令进行检查,然后查看功能部分。大多数时候,它应该是第一个设备,即 /dev/video0。
现在,您需要在 Howdy 配置中设置设备路径。您可以通过手动打开 /lib/security/howdy/config.ini 文件进行编辑,或使用以下命令在默认的基于终端的文本编辑器中打开配置文件进行编辑:
sudo howdy config
查找以 device_path 开头的行。将其值更改为 /dev/video0 或网络摄像头设备的任何路径。
保存并退出文件。您现在就可以出发了。
添加您的脸部以进行面部识别
Howdy 是一个命令行工具。您必须在终端中完成所有操作。
现在您已经设置了正确的设备路径,是时候将一些面孔添加到其数据库中以进行识别了。
使用以下命令将面孔与当前登录的用户(即您)相关联。
sudo howdy add
它不会通过打开摄像头显示您的脸部样子,因此您应该查看网络摄像头以正确捕获您的脸部。
它会要求您向脸部添加标识符。您可以将其命名为任何您想要的名称。我使用了眼镜、耳机等术语。
我建议添加更多脸部变体,尤其是如果您戴眼镜的话。每次要添加面孔时,只需运行 sudo howdy add 命令即可。
添加面孔后,Howdy 即可使用。要测试它,请打开一个新终端并使用 sudo 运行命令。您会注意到您的网络摄像头闪烁并尝试检测脸部。如果无法识别脸部,则会显示错误消息并要求您使用密码。
要为其他用户添加面孔,您还应该提供用户名:
sudo howdy -U username add
您无需担心重启后如何启动 Howdy。 Howdy 在每次启动时自动启动。
列出用户所有已知的面部模型
您可以使用 list
选项查看与用户关联的面部模型。如果您不指定用户名,它将显示当前用户的输出。
sudo howdy list
清除部分或全部脸部模型
当您列出某个用户的所有脸部模型时,您可以使用删除选项删除特定的脸部模型。您必须提供面部模型的 ID,而不是标签。
sudo howdy remove face_ID
您可以使用以下命令删除所有面部模型:
sudo howdy clear
禁用并重新启用 Howdy
您可以使用以下命令暂时禁用 Howdy:
sudo howdy disable 1
您可以使用相同的禁用选项但使用 0 作为参数重新启用它:
sudo howdy disable 0
从系统中删除 Howdy
您可以使用发行版的包管理器来删除 Howdy。
在 Ubuntu 上,使用以下命令:
sudo apt remove howdy
您还应该删除 PPA:
sudo add-apt-repository -r ppa:boltgolt/howdy
对于其他发行版,请使用与您所使用的安装方法相对应的卸载方法。
结论
在 Linux 上设置面部解锁很有趣。我认为这可以为一些优秀的 Raspberry Pi 项目提供基础。做这样的事情是一个有趣的周末练习。
但是,我不建议将其设置在关键基础设施或服务器上。面部识别不是很安全。
在个人 Linux 系统上使用面部解锁是一回事,但请不要在服务器或工作机器上使用它。
我希望您喜欢这个 DIY(如果我可以这么称呼它)教程。如果您希望将来看到更多有关 It's FOSS 的此类教程,请告诉我。