如何使用 GnuPG 共享 OpenPGP 公鑰?

如何使用 GnuPG 共享 OpenPGP 公鑰?

我使用 GnuPG 產生密鑰。但查看 GUI,我無法判斷我的公鑰儲存在哪裡。我想與朋友分享。

我單擊導出,導出了一個 name.asc 文件,但是當我在 gedit 中打開該文件時,它被標記為私鑰,因此我假設這不是用於共享的公鑰。

答案1

從命令列:

運行gpg --list-keys 'your name'以列出您目前擁有的密鑰(替換your name為您在設定時擁有的名稱):

$ gpg --list-keys muru      
/home/muru/.gnupg/pubring.gpg
--------------------------------
pub   2048R/AD0CC9B4 2015-07-15
uid                  muru
sub   2048R/450DAD90 2015-07-15

記下要匯出的密鑰的指紋。我的公鑰的指紋是AD0CC9B4。要匯出它,我會這樣做gpg --export-a用於 ASCII 裝甲,以便密鑰採用通常的 Base64 編碼形式):

$ gpg -a --export AD0CC9B4
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFWm4zkBCADYo5ffanvwBVGMbfp3g+/RMYb41QRZXCGSUhZkU7m3BpPSoO/4
NBzD4KKAU6CTVzBmVmZoFGgK2dDIOv+ZCkB4USZM2cvvpu7I+jfaYZW7ouQ4uEYu
8xY8ugFn5ImsK4KN0OP+Iw1VBXLdvj/rEiV+gcH8QV0XhsfgczCxjS1dMV3AMD+h
# snip
Wo0X3XmrPpaHJf7MsjGmJGbHNX9ZLllyFWQPlNdu9ilLI9GMjSpJSqQ=
=l/Xm
-----END PGP PUBLIC KEY BLOCK-----

您可以將輸出重定向到檔案:

gpg -a --export AD0CC9B4 > my-pubkey.asc

然後my-pubkey.asc應該包含您的 ASCII 裝甲公鑰。

可以使用以下命令匯出對應的私鑰:

gpg -a --export-secret-keys AD0CC9B4

該命令的輸出將以

-----BEGIN PGP PRIVATE KEY BLOCK-----

答案2

我單擊導出,導出了一個 name.asc 文件,但是當我在 gedit 中打開該文件時,它被標記為私鑰,因此我假設這不是用於共享的公鑰。

這確實是一個壞主意,因為私鑰應該保持私有。

您的公鑰儲存在 GnuPG 密鑰環中(~/.gnupg/pubring.gpg預設)。要分發它,您有兩個選擇。兩者也應該在大多數圖形使用者介面中可用,但命令的名稱可能不同。

  1. 導出密鑰並手動發送

    若要匯出金鑰,請使用該--export選項,該選項會匯出給定的公鑰以及收到的所有使用者 ID、子金鑰和憑證。-a/--ascii啟用 ASCII-armoring,這主要是一種類似 Base64 的編碼,使傳輸更安全,同時稍微增加檔案大小(仍然相當小)。

    gpg --ascii --export [key-id] > your-key.asc
    

    現在您可以將此文件郵寄或上傳到某處,或透過您選擇的其他媒介傳遞它。

  2. 將密鑰上傳到密鑰伺服器網絡

    通常,密鑰是使用密鑰伺服器網路分發的。使用該命令上傳您的公鑰非常容易--send-key

    gpg --send-key [key-id]
    

    現在其他人可以透過執行來搜尋並接收您的金鑰

    gpg --search [mail address]
    gpg --recv-key [key-id]
    

    此外,大多數 OpenPGP 實作將支援查詢關鍵伺服器以取得郵件地址,以手動或自動方式使用。

    意識到您永遠無法從金鑰伺服器網路中刪除 OpenPGP 金鑰(不管是誰上傳的)!

相關內容