21个版本
0.9.3 | 2024年5月29日 |
---|---|
0.9.2 | 2024年3月2日 |
0.9.1 | 2023年5月3日 |
0.9.0 | 2022年6月8日 |
0.1.0 | 2017年2月5日 |
#46 in 身份验证
用于 yubirs-tools
240KB
5K SLoC
yubirs
Rust中与YubiKeys交互的库。
目前,此库支持OTP和PIV功能。
在Linux上使用Yubikeys
以下是一些有关如何使用Yubikey的有用资源
- https://wiki.archlinux.org/index.php/Yubikey
- https://developers.yubico.com/OTP/
- https://developers.yubico.com/PIV/
特别是,为了完全使用Yubikey,需要进行一些设置。OTP模式通常无需额外设置(因为我们只依赖于Yubikey的USB键盘功能),但对于PIV/智能卡功能,则需要一些额外的设置。
Arch Linux
libu2f-host
为非root用户使用Yubikey提供udev规则。yubikey-manager
提供一些管理Yubikey的实用工具。pcsclite
是yubirs的依赖项;这是我们用于与Yubikey程序交互的PC/SC库。pcsc-tools
提供了一些与智能卡交互的实用工具。ccid
提供了一个通用的USB芯片/智能卡接口设备驱动程序。libusb-compat
提供了一个库,用于用户空间应用程序与USB设备通信。
sudo pacman -S libu2f-host yubikey-manager pcsclite pcsc-tools ccid libusb-compat
# For pcsclite to work, we need to start the pcscd daemon.
sudo systemctl start pcscd.service
sudo systemctl enable pcscd.service
Gentoo Linux
Gentoo的过程非常相似
# Install necessary packages.
emerge -av libu2f-host yubikey-manager pcsc-lite pcsc-tools ccid libusb-compat
# Add your user to the right group to be able to access the device. Replace
# $MY_USER with your username.
gpasswd -a $MY_USER pcscd plugdev usb
# Configure hotplugging by setting rc_hotplug="pcscd" in this file:
vim /etc/rc.conf
# Start pcscd, and configure it to start on boot.
rc-update add pcscd default
/etc/init.d/pcscd start
polkit
如果您的系统配置为使用polkit(例如,如果您正在运行KDE),则您还需要修改polkit的规则,以允许非root用户访问PC/SC设备。在/usr/share/polkit-1/rules.d/02-pcsc.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.debian.pcsc-lite.access_card" &&
subject.user == "< YOUR USER HERE >") {
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if (action.id == "org.debian.pcsc-lite.access_pcsc" &&
subject.user == "< YOUR USER HERE >") {
return polkit.Result.YES;
}
});
测试
为了验证一切设置正确,以下命令都应正常工作并打印出有关Yubikey的信息
gpg --card-status
pcsc_scan
命令行工具
虽然yubirs
是一个库,但yubirs-tools
提供了用于处理YubiKeys的命令行工具。目前,以下二进制文件可用
piv-tool
piv-tool
类似于上游的yubico-piv-tool
,但基于yubirs
构建,而不是使用上游的C库。它具有与上游工具相似的功能性,但可能存在一些差距。官方上游文档提供了涉及概念的概述。
开发
该存储库包含一些额外的Git配置,这使得开发更容易。要使用此配置,请在存储库根目录中运行git config --local include.path ../.gitconfig
。注意:包含任意Git配置是一个安全漏洞,因此在包含之前应该审核此自定义配置。
依赖关系
约2-13MB
约159K SLoC