
我已經導出了我的金鑰
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 noclobber
make來>
避免覆蓋檔案;然後,只要您確實希望發生覆蓋,就必須指定>|
(bash) 或(zsh)。>!
並且僅包含部分用戶名似乎與包含整個用戶名具有相同的效果,
這是預期的行為;金鑰選擇與 --export 的作用與 --list-keys、--recipient 和其他類似選項的作用相同。您始終能夠gpg -k fred
列出所有匹配的鍵。
更重要的是,您始終能夠建立任意數量的具有相同名稱和位址的金鑰。 (例如,我有 4-5 個金鑰,當然,它們的名稱相同,僅電子郵件地址不同。我的公鑰環也顯示,隨著時間的推移,有幾個人擁有多個金鑰。)
唯一的始終可靠選擇單一密鑰的方法是使用其完整指紋。另一個通常可靠的方法是使用 16 位元「密鑰 ID」(即截斷的指紋)。