匯出到文件:

匯出到文件:

我搬到了另一台 Macbook。由於昂貴的 SSD 和非常小的磁碟大小,並且因為我想從這個安裝開始乾淨,所以我無法傳輸用戶資料夾。我連接了外接盒中的舊磁碟,發現我忘記匯出兩個私鑰。我想從外部磁碟或時間機器恢復它們。

在哪裡可以找到 GPG 工具私鑰,以便匯出它們,或複製整個 GPG 工具資料夾?

答案1

預設情況下,GnuPG 密鑰環儲存在(隱藏)資料夾中~/.gnupg;換句話說,.gnupg您的主目錄中的資料夾。您只需將整個資料夾複製到新機器即可。如果 GnuPG 之後無法正常運作或顯示一些指示權限損壞的錯誤訊息,請確保透過在終端應用程式中執行以下命令(它將查詢您的使用者密碼):

sudo chown -R $USER:staff ~/.gnupg

或者,您可以使用以下命令匯出您的金鑰

gpg --export-secret-keys [key-id] >secret-keys.gpg

命令。當您想要從舊磁碟恢復金鑰時,請將其連接到您的電腦。要在舊磁碟的 GnuPG 密鑰環上工作,請使用該--homedir選項,這將導致類似的結果

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --list-secret-keys

列出可用的密鑰,以及

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] > secret-keys.gpg

導出它們。您也可以直接將它們匯入到新的 GnuPG 密鑰環中,而不是儲存在中間檔案中(觀察--homedirGnuPG 呼叫中缺少的參數管):

gpg --homedir /Volumes/[old-disks-name]/Users/[username]/.gnupg --export-secret-keys [key-id] | gpg --import

2019 年/macOS Catalina 更新:

可以安裝時間機器備份,但無法就地修改它們。這意味著 chown 將失敗,並且--homedir如果沒有獲得以下流,則無法將該選項與 gpg 一起使用:

gpg: failed to create temporary file '/Volumes/<Backup Drive>/Backups.backupdb/<Compute Name>/Latest/Macintosh HD/Users/<name>/.gnupg/': Permission denied
gpg: can't connect to the agent: Permission denied

chown 將失敗並顯示如下訊息流:

$ sudo chown -R user:staff .gnupg

chown: .gnupg/tofu.db: Operation not permitted
chown: .gnupg/trustdb.gpg: Operation not permitted
chown: .gnupg: Operation not permitted

從 Time Machine 備份複製 .gnupg 資料夾,對其進行 chown,然後查看/提取私鑰,如下所示:

$ mkdir ~/gpg_recovery
$ cp -r /Volumes/<Backup Drive>/Backups.backupdb/<Compute Name>/Latest/Macintosh HD/Users/<name>/.gnupg ~/gpg_recovery/
$ cd ~/gpg_recovery/
$ sudo chown -R $USER:staff .gnupg
Password:
$ gpg --homedir ~/gpg_recovery/.gnupg --list-secret-keys

$ gpg --homedir ~/gpg_recovery/.gnupg --export-secret-keys | gpg --import
gpg: key xxxxxxxxxxxxxxxx: public key "xxxxxxxxxxxxxxxxxxxxxxx" imported
gpg: key xxxxxxxxxxxxxxxx: secret key imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1

答案2

視窗

在 Windows 系統上,您可以使用類似的軟體GP4win。在這種情況下,您可以透過將以下文件複製到新電腦來遷移您的(私鑰)金鑰:

  • 文件%AppData%\gnupg\pubring.kbx
  • 文件%AppData%\gnupg\trustdb.gpg
  • 整個資料夾%AppData%\gnupg\private-keys-v1.d

若要列出目前識別(安裝)的本機金鑰,請使用gpg --list-secret-keys --keyid-format LONG。使用透過安裝的 gpg (GnuPG) 2.3.4 (2021) 進行測試GP4win4.0.0。

答案3

對 @jens-erat 的答案的一點補充:

匯出到文件:

gpg --output private_keys.backup --armor --export-secret-keys

SSH 導入

gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import

參考:如何將 GPG 私鑰和公鑰匯出到文件

相關內容