使用 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,輸入
addkey
Enter,輸入8
Enter,輸入S
Enter,輸入E
Enter,輸入A
Enter - 輸入
8
Enter,輸入金鑰大小,輸入期限如2y
Enter,輸入y
Enter,輸入y
Enter,輸入金鑰保護密碼,輸入save
Enter 儲存 - 回到 Kleopatra ,對列表上的金鑰右鍵 > 匯出私密金鑰,並妥善備份
移動私鑰至 Yubikey
- 開啟 cmd 輸入
gpg --expert --edit-key <keyid>
Enter - 輸入
keytocard
Enter,輸入y
Enter,輸入1
Enter,輸入金鑰保護密碼,完成移動 Signature Key - 輸入
key 1
Enter,輸入keytocard
Enter,輸入2
Enter,輸入金鑰保護密碼,完成移動 Encryption Key - 輸入
key 1
Enter,輸入key 2
Enter,輸入keytocard
Enter,輸入3
Enter,輸入金鑰保護密碼,完成移動 Authentication Key - 輸入
save
Enter 儲存,此時私鑰已不在電腦裡了
在新電腦載入金鑰
有兩種方法擇一即可
- 開啟 cmd 輸入
gpg --card-edit
再輸入fetch
- 自行準備公鑰檔匯入 Kleopatra
從備份檔還私鑰原至 YubiKey
將備份私鑰的asc檔匯入 Kleopatra 後再次操作移動私鑰至 Yubikey
留言