如何驗證出於備份目的而匯出的 gpg 金鑰?

如何驗證出於備份目的而匯出的 gpg 金鑰?

我已經導出了我的金鑰

gpg --export-secret-key "user name" > path/to/secretkeybackupfile.key

然後完成

gpg path/to/secretkeybackupfile.key

它將密鑰的詳細資訊顯示為具有正確 ID 的密鑰。有沒有辦法測試它實際上會解密我用該密鑰創建的文件,從而證明它確實是正確的密鑰並且工作正常?

我能看到的唯一方法是刪除原始密鑰,然後將其副本匯入回 GPG 密鑰環...

另外,我注意到,當匯出金鑰時,它將覆蓋指定的文件,而不會發出任何警告,並且僅包含部分用戶名似乎與包含整個用戶名具有相同的效果,這是否正確,是否是所需的行為?

答案1

它將密鑰的詳細資訊顯示為具有正確 ID 的密鑰。有沒有辦法測試它實際上會解密我用該密鑰創建的文件,從而證明它確實是正確的密鑰並且工作正常?

設定$GNUPGHOME為臨時空目錄,然後您就可以將金鑰匯入到新的空白鑰匙圈。測試後,取消設定變數(或關閉 shell 視窗),您將回到常規密鑰環。

mkdir -m 0700 ~/gnupgtest
export GNUPGHOME=~/gnupgtest
gpg --import ~/backup.gpg
gpg --list-secret-keys

另外,我注意到導出密鑰時它將覆蓋指定的文件,而不會發出任何警告

shell 操作員>總是會在沒有警告的情況下覆寫該檔案。重定向運算子是不是 gpg 的一部分– 它們是 shell 語言/語法的一部分,無論您使用什麼指令,它們的行為都是相同的。

在bash中,可以使用set -o noclobbermake來>避免覆蓋檔案;然後,只要您確實希望發生覆蓋,就必須指定>|(bash) 或(zsh)。>!

並且僅包含部分用戶名似乎與包含整個用戶名具有相同的效果,

這是預期的行為;金鑰選擇與 --export 的作用與 --list-keys、--recipient 和其他類似選項的作用相同。您始終能夠gpg -k fred列出所有匹配的鍵。

更重要的是,您始終能夠建立任意數量的具有相同名稱和位址的金鑰。 (例如,我有 4-5 個金鑰,當然,它們的名稱相同,僅電子郵件地址不同。我的公鑰環也顯示,隨著時間的推移,有幾個人擁有多個金鑰。)

唯一的始終可靠選擇單一密鑰的方法是使用其完整指紋。另一個通常可靠的方法是使用 16 位元「密鑰 ID」(即截斷的指紋)。

相關內容