7 个版本
0.2.4 | 2024 年 5 月 29 日 |
---|---|
0.2.3 | 2024 年 3 月 2 日 |
0.2.2 | 2023 年 5 月 3 日 |
0.2.1 | 2022 年 6 月 8 日 |
0.1.0 | 2020 年 3 月 15 日 |
#675 in 命令行工具
260KB
6K 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配置是一个安全漏洞,因此在包含之前应审计此自定义配置。
依赖项
约11MB
约191K SLoC