
我使用 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
預設)。要分發它,您有兩個選擇。兩者也應該在大多數圖形使用者介面中可用,但命令的名稱可能不同。
導出密鑰並手動發送
若要匯出金鑰,請使用該
--export
選項,該選項會匯出給定的公鑰以及收到的所有使用者 ID、子金鑰和憑證。-a
/--ascii
啟用 ASCII-armoring,這主要是一種類似 Base64 的編碼,使傳輸更安全,同時稍微增加檔案大小(仍然相當小)。gpg --ascii --export [key-id] > your-key.asc
現在您可以將此文件郵寄或上傳到某處,或透過您選擇的其他媒介傳遞它。
將密鑰上傳到密鑰伺服器網絡
通常,密鑰是使用密鑰伺服器網路分發的。使用該命令上傳您的公鑰非常容易
--send-key
。gpg --send-key [key-id]
現在其他人可以透過執行來搜尋並接收您的金鑰
gpg --search [mail address] gpg --recv-key [key-id]
此外,大多數 OpenPGP 實作將支援查詢關鍵伺服器以取得郵件地址,以手動或自動方式使用。
意識到您永遠無法從金鑰伺服器網路中刪除 OpenPGP 金鑰(不管是誰上傳的)!