使用 Yubikey 儲存 OpenPGP 私鑰

1 分鐘閱讀

本篇文章記錄如何在 Windows 下使用 YubkiKey 搭配 GnuPG 工具,在 Yubikey 上建立金鑰對並儲存備份,以及如何將備份還原至 YubiKey 之中。

準備需求

  • 支援 OpenPGP 的 Yubikey
YubiKey 4 YubiKey NEO YubiKey 4 Nano
YubiKey NEO-n YubiKey 5 NFC YubiKey 5 Nano
YubiKey 4C YubiKey 4C Nano YubiKey 5C
YubiKey 5C Nano

操作步驟

初始設定 Yubikey

  1. 開啟 Kleopatra > 工具(T) > Manage Smartcards 1
  2. 修改 Cardholder 成自己的名字
  3. 使用 Change PIN 修改 PIN 碼,預設值 123456
  4. 使用 Change Admin PIN 修改管理 PIN 碼,預設值 12345678

建立金鑰對及備份私鑰

  1. 檔案(F) > New Key Pair… 2
  2. 建立個人 OpenPGP 金鑰配對 > 輸入Name和Email 3
  3. 進階設定 > Yubikey NEO系列選RAS 2048,Yubikey 4和5系列選RAS 4096,自行決定是否需要合法到期時間 4
  4. OK > 下一個 > Create > 輸入金鑰保護密碼 5
  5. 先直接完成,還不要備份 6
  6. 複製 Key-ID 7
  7. 開啟 cmd 輸入 gpg --expert --edit-key <keyid> Enter 8
  8. 新增 Authenticate Key,輸入 addkey Enter,輸入 8 Enter,輸入 S Enter,輸入 E Enter,輸入 A Enter 9
  9. 輸入 8 Enter,輸入金鑰大小,輸入期限如 2y Enter,輸入 y Enter,輸入 y Enter,輸入金鑰保護密碼,輸入 save Enter 儲存 10
  10. 回到 Kleopatra ,對列表上的金鑰右鍵 > 匯出私密金鑰,並妥善備份 11

移動私鑰至 Yubikey

  1. 開啟 cmd 輸入 gpg --expert --edit-key <keyid> Enter
  2. 輸入 keytocard Enter,輸入 y Enter,輸入 1 Enter,輸入金鑰保護密碼,完成移動 Signature Key
  3. 輸入 key 1 Enter,輸入 keytocard Enter,輸入 2 Enter,輸入金鑰保護密碼,完成移動 Encryption Key
  4. 輸入 key 1 Enter,輸入 key 2 Enter,輸入 keytocard Enter,輸入 3 Enter,輸入金鑰保護密碼,完成移動 Authentication Key
  5. 輸入 save Enter 儲存,此時私鑰已不在電腦裡了

在新電腦載入金鑰

有兩種方法擇一即可

  • 開啟 cmd 輸入 gpg --card-edit 再輸入 fetch
  • 自行準備公鑰檔匯入 Kleopatra

從備份檔還私鑰原至 YubiKey

將備份私鑰的asc檔匯入 Kleopatra 後再次操作移動私鑰至 Yubikey

參考資料

留言