使用 Yubikey 儲存 OpenPGP 私鑰
本篇文章記錄如何在 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 | — | — |
- GnuPG 軟體 GPG4Win
操作步驟
初始設定 Yubikey
- 開啟 Kleopatra > 工具(T) > Manage Smartcards

- 修改 Cardholder 成自己的名字
- 使用 Change PIN 修改 PIN 碼,預設值 123456
- 使用 Change Admin PIN 修改管理 PIN 碼,預設值 12345678
建立金鑰對及備份私鑰
- 檔案(F) > New Key Pair…

- 建立個人 OpenPGP 金鑰配對 > 輸入Name和Email

- 進階設定 > Yubikey NEO系列選RAS 2048,Yubikey 4和5系列選RAS 4096,自行決定是否需要合法到期時間

- OK > 下一個 > Create > 輸入金鑰保護密碼

- 先直接完成,還不要備份

- 複製 Key-ID

- 開啟 cmd 輸入
gpg --expert --edit-key <keyid>Enter
- 新增 Authenticate Key,輸入
addkeyEnter,輸入8Enter,輸入SEnter,輸入EEnter,輸入AEnter
- 輸入
8Enter,輸入金鑰大小,輸入期限如2yEnter,輸入yEnter,輸入yEnter,輸入金鑰保護密碼,輸入saveEnter 儲存
- 回到 Kleopatra ,對列表上的金鑰右鍵 > 匯出私密金鑰,並妥善備份

移動私鑰至 Yubikey
- 開啟 cmd 輸入
gpg --expert --edit-key <keyid>Enter - 輸入
keytocardEnter,輸入yEnter,輸入1Enter,輸入金鑰保護密碼,完成移動 Signature Key - 輸入
key 1Enter,輸入keytocardEnter,輸入2Enter,輸入金鑰保護密碼,完成移動 Encryption Key - 輸入
key 1Enter,輸入key 2Enter,輸入keytocardEnter,輸入3Enter,輸入金鑰保護密碼,完成移動 Authentication Key - 輸入
saveEnter 儲存,此時私鑰已不在電腦裡了
在新電腦載入金鑰
有兩種方法擇一即可
- 開啟 cmd 輸入
gpg --card-edit再輸入fetch - 自行準備公鑰檔匯入 Kleopatra
從備份檔還私鑰原至 YubiKey
將備份私鑰的asc檔匯入 Kleopatra 後再次操作移動私鑰至 Yubikey
留言