YubiKey GPG 新设备迁移 (Ubuntu)

本教程适用于:YubiKey 内部已存有 GPG 密钥,需要在另一台新的 Ubuntu 电脑上快速恢复使用的场景。

1. 安装必要组件

首先,安装用于读取智能卡和管理 GPG 的核心工具:

sudo apt update
sudo apt install gpg pcscd scdaemon -y
sudo systemctl enable --now pcscd

启动智能卡守护进程。

2. 识别 YubiKey 并生成私钥存根

插入 YubiKey,运行以下命令。这一步是告诉新系统的 GPG 引擎:私钥存在硬件中,而不是本地磁盘。

gpg --card-status

验证: 在输出信息中,确保能看到 Signature key, Encryption key, 和 Authentication key 的指纹信息。此时,GPG 已在本地创建了”私钥存根”。

3. 导入并信任公钥

GPG 需要公钥才能进行加密或验证签名。请选择以下其中一种方式:

方案 A:从公钥文件导入(最常用)

如果你有公钥备份文件(如 public.asc):

gpg --import public.asc

方案 B:从 YubiKey 记录的 URL 获取

如果你之前将公钥上传到了服务器并将 URL 存入卡内:

首先运行:

gpg --card-edit

进入交互模式后输入:

fetch

然后退出:

quit

4. 设置最终信任 (Ultimate Trust)

导入公钥后,必须手动将其标记为”最终信任”,否则 GPG 会因为无法确认密钥所属权而拒绝工作。

获取 Key ID

gpg --list-keys

编辑信任等级

gpg --edit-key [你的KEY_ID]

在交互界面依次输入

  • 输入 trust
  • 输入 5 (代表 I trust ultimately)
  • 输入 y
  • 输入 save