#otp #命令行 #YubiKeys #piv #upon #yubirs

app yubirs-tools

基于 yubirs 的 YubiKeys 交互命令行工具

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 命令行工具

Apache-2.0

260KB
6K SLoC

yubirs

Build Status

一个用于在 Rust 中与 YubiKeys 交互的库。

目前,此库支持 OTP 和 PIV 功能。

在 Linux 上使用 Yubikeys

以下是一些关于如何使用 Yubikey 的有用资源

特别是,为了完全使用 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