如何在 Linux 上備份和恢復 GPG 密鑰

隱私是一個越來越熱門的話題。 在 Linux 上, gpg 該命令允許用戶使用公鑰密碼術加密文件,在這種情況下丟失加密密鑰將是災難性的。 這是備份它們的方法。

OpenPGP 和 GNU 隱私保護

與硬拷貝相比,電子文件的優勢之一是您可以對電子文件進行加密,因此只有經過授權的人才能訪問它們。 如果他們落入壞人之手,那也沒關係。 只有您和預期的收件人可以訪問文件的內容。

OpenPGP 標準描述了一種稱為公鑰加密的加密系統。 這GNU 隱私保護該標準的實施導致 gpg 用於加密和解密的命令行工具根據標準.

該標準描述了一種公鑰加密方案。 儘管它被稱為“公鑰”,但涉及到兩個密鑰。 每個人都有一個公鑰和一個私鑰。 顧名思義,私鑰永遠不會洩露或傳遞給其他任何人。 可以安全地共享公鑰。 實際上,必須共享公鑰才能使該方案起作用。

當文件被加密時,發送者的私鑰和接收者的公鑰被用於加密過程。 然後可以將文件傳遞給收件人。 他們使用您的私鑰和發件人的公鑰來解密文件。

公鑰和私鑰作為匹配對生成並與特定身份相關聯。 即使您不將敏感材料傳輸給他人,您也可以在自己的計算機上使用它來為私人文檔添加額外的保護層。

加密使用世界一流的算法和加密功能。 如果沒有正確的公鑰和私鑰,您根本無法訪問加密文件。 而且,如果您丟失了鑰匙,這也適用於您。 生成新密鑰無濟於事。 要解密您的文件,您需要在加密過程中使用的密鑰。

毋庸置疑,備份您的密鑰至關重要,知道如何恢復它們也是如此。 以下是執行這些任務的方法。

.gnupg 目錄

您的密鑰存儲在主目錄中名為“.gnupg”的目錄中。 該目錄還將存儲向您發送加密文件的任何人的公鑰。 當您導入您的公鑰時,它們會被添加到該目錄中索引的數據庫文件中。

當然,此目錄中的任何內容都不是以純文本形式存儲的。 當您生成 GPG 密鑰時,系統會提示您輸入密碼。 希望您已經記住了該密碼是什麼。 你會需要它的。 沒有它就無法解密“.gnugp”目錄中的條目。

如果我們使用 tree 實用程序來查看目錄,我們將看到子目錄和文件的這種結構。 你會找到 tree 如果您的計算機上還沒有它,請在您的發行版的存儲庫中。

                      tree .gnupg
                    

目錄樹的內容是:

  • openpgp-revocs.d:此子目錄包含您的吊銷證書。 如果您的私鑰成為常識或以其他方式受到損害,您將需要這個。 您的吊銷證書用於淘汰舊密鑰和採用新密鑰的過程。
  • 私鑰-v1.d:這個子目錄存儲你的私鑰。
  • 發布.kbx: 加密文件。 它包含公鑰(包括您的公鑰)以及一些關於它們的元數據。
  • pubring.kbx~: 這是“pubring.kbx”的備份。 它在對“pubring.kbx”進行更改之前更新。
  • 信任數據庫.gpg:這維護了您為自己的密鑰和屬於其他人的任何已接受的公鑰建立的信任關係。

在任何情況下,您都應該定期和頻繁地備份您的主目錄,包括隱藏文件和文件夾。 當然,這將備份“.gnupg”目錄。

但是您可能認為您的 GPG 密鑰非常重要,足以保證您自己的定期備份,或者您可能希望將您的密鑰從台式機複製到筆記本電腦,以便在兩台機器上都有它們。 畢竟,兩台機器上都是你。

確定要備份的密鑰

我們可以問 gpg 告訴我們您的 GPG 系統中有哪些密鑰。 我們將使用 --list-secret-keys 選項和 --keyid-format LONG 選項

                      gpg --list-secret-keys --keyid-format LONG
                    

Listado de los detalles de la clave GPG en la ventana del terminal

我們被告知 GPG 正在查看文件“/home/dave/.gnupg/pubring.kbx”。

屏幕上的任何內容都不是您的實際密鑰。

  • “sec”(秘密)行顯示密碼中的位數(本例中為 4096)、密鑰 ID、密鑰創建日期和“[SC]”。 “S”表示密鑰可用於數字簽名,“C”表示可用於認證。
  • 下一行是密鑰指紋。
  • “uid”行包含密鑰所有者的標識。
  • “ssb”行顯示秘密子密鑰、創建時間和“E”。 “E”表示它可以用於加密。

如果您創建了多個密鑰對以用於不同的身份,它們也會出現在列表中。 此用戶只需備份一個密鑰對。 備份將包括屬於此密鑰所有者已收集並選擇信任的其他人的任何公鑰。

備份

我們可以問 gpg 備份所有身份的所有密鑰,或備份與單個身份關聯的密鑰。 我們將備份私鑰、密鑰和信任數據庫文件。

要備份您的公鑰,請使用 --export 選項。 我們還將使用 --export-options backup options 這可確保包含所有 GPG 特定的元數據,以允許文件在另一台計算機上成功導入。

我們將指定一個輸出文件 --output 選項。 如果我們不這樣做,輸出將被發送到終端窗口。

                      gpg --export --export-options backup --output public.gpg
                    

Exportar las claves GPG públicas

如果您只想備份單個身份的密鑰,請將與密鑰關聯的電子郵件地址添加到命令行。 如果您不記得它是什麼電子郵件地址,請使用 --list-secret-keys 選項,如上所述。

                      gpg --export --export-options backup --output public.gpg [email protected]
                    

Exportación de claves GPG públicas para una única identidad

要備份我們的私鑰,我們需要使用 --export-secret-keys 選項而不是 --export 選項。 確保將其保存到不同的文件中。

                      gpg --export-secret-keys --export-options backup --output private.gpg
                    

Exportar las claves GPG privadas

由於這是您的私鑰,因此您需要先通過 GPG 進行身份驗證,然後才能繼續。

請注意,系統不會提示您輸入密碼。 您需要輸入的是您在首次創建 GPG 密鑰時提供的密碼。 好的密碼管理器允許您將此類信息保存為安全註釋。 這是存放它們的好地方。

Proporcionar la frase de contraseña GPG para exportar las claves privadas

如果密碼被接受,則執行導出。

為了備份您的信任關係,我們需要從您的“trustdb.gpg”文件中導出設置。 我們將輸出發送到一個名為“trust.gpg”的文件。 這是一個文本文件。 可以看到使用 cat .

                      gpg --export-ownertrust > trust.gpg
                    
                      cat trust.gpg
                    

Exportación de las relaciones de confianza de GPG

這是我們創建的三個文件。

                      ls -hl *.gpg
                    

Los tres archivos creados por los comandos de exportación.

我們會將它們移動到另一台計算機並恢復它們。 這將在該機器上建立我們的身份,並允許我們使用現有的 GPG 密鑰。

如果您沒有將密鑰移動到另一台計算機並只是備份它們,因為您想加倍確保它們是安全的,請將它們複製到其他介質並保證它們的安全。 即使他們落入壞人之手,你的公鑰無論如何都是公開的,所以那裡沒有害處。 如果沒有您的密碼,您的私鑰將無法恢復。 但是,請確保您的備份安全且私密。

我們已將文件複製到 Manjaro 21 計算機。

                      ls *.gpg
                    

Los archivos exportados transferidos a una computadora Manjaro

默認情況下,Manjaro 21 使用Z殼, zsh 所以看起來不一樣。 但這沒關係,它不會影響任何事情。 我們正在做的事情是由 gpg 程序,而不是外殼。

要導入我們的密鑰,我們需要使用 --import 選項。

                      gpg --import public.gpg
                    

Importación de las claves GPG públicas

導入時會顯示密鑰的詳細信息。 還為我們創建了“trustdb.gpg”文件。 導入私鑰同樣簡單。 我們使用 --import 再次選擇。

                      gpg --import private.gpg
                    

Importación de las claves GPG privadas

系統會提示我們輸入密碼。

Ingresar la frase de contraseña para importar las claves GPG privadas

在“Passphrase”字段中輸入它,按“Tab”鍵,然後按“Enter”。

Confirmación de las claves GPG privadas importadas

將顯示導入密鑰的詳細信息。 在我們的例子中,我們只有一把鑰匙。

要導入我們的信任數據庫,請輸入:

                      gpg --import-ownertrust trust.gpg
                    

Importación de las relaciones de confianza de GPG

我們可以使用 --list-secret-keys 再次選擇。

                      gpg --list-secret-keys --keyid-format LONG
                    

Verificando que la importación ha funcionado

這給了我們與我們在計算機上看到的完全相同的結果Ubuntu之前。

保護您的隱私

通過備份來確保您的 GPG 密鑰是安全的。 如果您遇到計算機問題或只是升級到較新的型號,請確保您知道如何將密鑰轉移到新機器上。

如何使用 rsync 備份你的 Linux 系統

相關文章