Featured image of post 設置 YubiKey 與 OpenPGP

設置 YubiKey 與 OpenPGP

完整的 YubiKey 與 OpenPGP 設置指南,包含密鑰生成、備份和故障排除

最後更新
約 1364 字

概述

YubiKey 是一個硬體安全金鑰,可以安全地存儲 OpenPGP 密鑰。本指南將教您如何設置 YubiKey 與 OpenPGP,包括生成密鑰、備份和移動到 YubiKey。

前置需求

  • 一個兼容的 YubiKey(推薦 YubiKey 5 系列)
  • 安裝最新版本的 GnuPG 軟件
  • 支援的操作系統:Linux、macOS 或 Windows

第一步:生成 OpenPGP 密鑰對

1.1 插入 YubiKey

將 YubiKey 插入 USB 端口,確保系統能識別設備。

1.2 生成主密鑰

在終端機中執行以下命令:

1
gpg --expert --full-gen-key

按照以下步驟操作:

  1. 選擇密鑰類型:輸入 9 選擇 “ECC and ECC”
  2. 選擇曲線:輸入 1 選擇 “ed25519”
  3. 設置到期日期:輸入有效期(例如 1y 表示一年)
  4. 輸入用戶信息
    • 姓名
    • 電子郵件地址
    • 註釋(可選)
  5. 確認信息:輸入 O 確認
  6. 設置密碼:為密鑰設置強密碼

生成完成後,記下顯示的密鑰 ID(例如:ABC123DEF456)。

1.3 添加子密鑰

添加身份驗證子密鑰

1
gpg --expert --edit-key <您的密鑰ID>

在 GPG 編輯器中執行:

1
addkey

選擇步驟:

  1. 輸入密鑰密碼
  2. 選擇 8 (ECC)
  3. 選擇 A (Authentication only)
  4. 選擇 1 (ed25519)
  5. 設置到期日期(與主密鑰相同)
  6. 確認並保存

添加簽名子密鑰

在相同的編輯會話中:

1
addkey

選擇步驟:

  1. 輸入密鑰密碼
  2. 選擇 8 (ECC)
  3. 選擇 S (Sign only)
  4. 選擇 1 (ed25519)
  5. 設置到期日期
  6. 確認並保存

添加加密子密鑰

1
addkey

選擇步驟:

  1. 輸入密鑰密碼
  2. 選擇 8 (ECC)
  3. 選擇 E (Encrypt only)
  4. 選擇 1 (ed25519)
  5. 設置到期日期
  6. 確認並保存

完成後輸入 quit 退出編輯器。

第二步:創建密鑰備份

在移動密鑰到 YubiKey 之前,務必創建備份:

1
2
3
4
5
# 導出私鑰
gpg --export-secret-key --armor <您的密鑰ID> > backup-key.asc

# 導出公鑰
gpg --export --armor <您的密鑰ID> > public-key.asc

重要:將 backup-key.asc 安全存儲在離線位置,如:

  • 加密的 USB 設備
  • 密碼管理器
  • 打印並存放在保險箱

第三步:設置 YubiKey

3.1 設置 YubiKey PIN

首次使用需要設置 PIN:

1
gpg --card-edit

在卡片編輯器中:

1
2
admin
passwd

設置以下 PIN:

  • User PIN:日常使用(預設:123456)
  • Admin PIN:管理操作(預設:12345678)
  • Reset Code:重置 PIN(可選)

3.2 移動密鑰到 YubiKey

1
gpg --expert --edit-key <您的密鑰ID>

移動主密鑰(簽名)

1
keytocard

選擇 1 (Signature key)

移動加密子密鑰

1
2
key 2
keytocard

選擇 2 (Encryption key)

移動身份驗證子密鑰

1
2
key 3
keytocard

選擇 3 (Authentication key)

完成移動

1
quit

當提示保存更改時,輸入 N(否)以保留硬碟上的密鑰副本。

第四步:驗證設置

4.1 檢查密鑰狀態

1
gpg --list-secret-keys

應該看到密鑰標記為 ssb> 表示已移動到智慧卡。

4.2 測試簽名

1
echo "測試訊息" | gpg --clearsign

4.3 測試加密

1
echo "測試訊息" | gpg --encrypt --recipient <您的密鑰ID>

第五步:在其他設備上使用

要在其他電腦上使用 YubiKey:

  1. 安裝 GnuPG
  2. 導入公鑰
    1
    
    gpg --import public-key.asc
    
  3. 插入 YubiKey
  4. 設置 gpg-agent(如果需要)

故障排除

常見問題

YubiKey 無法識別

  • 檢查 USB 連接
  • 確認驅動程式已安裝
  • 嘗試重新插拔

PIN 錯誤

  • 預設 User PIN:123456
  • 預設 Admin PIN:12345678
  • 如果忘記,可能需要重置

密鑰操作失敗

  • 確認 YubiKey 已插入
  • 檢查 PIN 是否正確
  • 確認密鑰已正確移動到 YubiKey

重置 YubiKey

如果需要重置 OpenPGP 應用程式:

1
2
3
gpg --card-edit
admin
factory-reset

警告:此操作將清除所有 OpenPGP 數據!

安全建議

  1. 定期備份:定期更新密鑰備份
  2. PIN 安全:使用強 PIN,避免預設值
  3. 物理安全:妥善保管 YubiKey
  4. 備用方案:準備備用 YubiKey
  5. 定期測試:定期測試密鑰功能

進階用法

設置 gpg-agent

~/.gnupg/gpg-agent.conf 中添加:

1
2
default-cache-ttl 600
max-cache-ttl 7200

SSH 身份驗證

將身份驗證子密鑰用於 SSH:

1
2
echo "use-agent" >> ~/.gnupg/gpg.conf
echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf

總結

完成以上步驟後,您就成功設置了 YubiKey 與 OpenPGP。您的密鑰現在安全地存儲在硬體設備中,提供了額外的安全保護層。

記住:

  • 妥善保管備份文件
  • 定期測試密鑰功能
  • 準備備用方案
  • 遵循安全最佳實踐

如有問題,請參考 YubiKey 官方文檔 或相關社群資源。


使用 Hugo 建立
主題 StackJimmy 設計