YubiKey 是由 Yubico 设计的一种硬件验证设备,可以根据型号支持不同的协议,如 OTP、PGP、U2F、FIDO2 等。它可以直接使用,无需任何软件,但您可以通过以下软件扩展或个性化功能:
本文将主要介绍如何导出 GPG 密钥和 SSH 密钥,如需获取更多相关主题的信息,可以参考 Arch wiki 或官方 Yubico 网站。
首先安装 pcscd
和 ccid
,这是使 YubiKey 更加功能完善的常用安装步骤,如果不需要可以跳过这一步。
sudo pacman -S pcslite ccid
sudo systemctl enable --now pcscd.service
sudo systemctl enable --now pcscd.socket
# 如果使用命令行界面
sudo pacman -S yubikey-manager
# 如果使用图形界面
sudo pacman -S yubikey-manager-qt
# 如果需要个性化工具
sudo pacman -S yubikey-personalization-gui
生成密钥对并导出、备份密钥以及生成撤销证书。您可以将这些文件安全存储在隐藏的 VeraCrypt 卷中。有关如何将密钥移动到 YubiKey 的更多信息,请查看官方 Yubico 网站和 GitHub 指南。
首先修改 PIN,初始默认值为 123456,管理员 Admin 的默认值为 12345678。
gpg --card-edit admin # 进入管理员设置界面
passwd 1 3 Q # 修改管理员 PIN
# 或者使用以下命令完成上述步骤
gpg --card-edit admin <<EOF
passwd 1 3 Q
EOF
接下来可以进行其他个性化设置,比如语言和名称:
# 设置名称
gpg --edit-key 0xABC # 进入密钥编辑界面
key 1 # 选择要操作的密钥
keytocard 1 key 1 # 将签名密钥导出到 YubiKey
key 2 # 选择要操作的密钥
keytocard 2 key 2 # 将加密密钥导出到 YubiKey
key 3 # 选择要操作的密钥
keytocard 3 key 3 # 将认证密钥导出到 YubiKey
quit # 退出编辑界面
# 生成配置文件
echo "pcsc-driver /usr/lib/libpcsclite.so" > ~/.gnupg/scdaemon.conf
echo "card-timeout 5" >> ~/.gnupg/scdaemon.conf
echo "disable-ccid" >> ~/.gnupg/scdaemon.conf
现在您已经准备好了!可以尝试使用导出的密钥进行加密和解密操作了。
当使用超过两个 GPG 密钥时,可能需要强制更改。当屏幕上显示 "Insert card with serial number..." 时,可以注意到此情况。
# 检查序列号,如果切换卡需要强制更改
gpg --card-status | grep Serial
# 强制更改
gpg-connect-agent "scd SERIAL" "learn --force" /bye
# 或者可以使用以下一行命令完成上述操作
gpg-connect-agent "scd $(gpg --card-status | grep Serial | awk '{print $4}')" "learn --force" /bye
SSH 设置非常简单。首先安装 fido2 库。
sudo pacman -S libfido2
生成 SSH 密钥时,将要求您验证 PIN。记住,可以根据需要自定义名称。
ssh-keygen -t ed25519-sk -C "YUB-$(date +%D)"
# 添加新的密钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/YUB-date
# 复制密钥到剪贴板,以便在其他地方粘贴使用,例如 GitHub
xclip -selection clipboard < ~/.ssh/YUB-date.pub
如果您想要恢复出厂设置,执行以下所有命令:
# OpenPGP
ykman openpgp reset
# OATH
ykman oath reset
# PIV
ykman piv reset
# FIDO2
ykman fido reset
# OTP
# 打开 Yubico Manager
# 选择 Application -> OTP
# 删除所有 slots
除了上述的 GPG 密钥和 SSH 密钥,YubiKey 还可以用于其他用途,例如:
祝顺利!🤙
翻译自:https://medium.com/@cuatroy2/2-yubico-an-easier-way-to-be-secure-e853a42b97b3