如何使用 GnuPG 共享公共 OpenPGP 密钥?

Bro*_*ode 7 gnupg

我使用 GnuPG 生成密钥。但是看着 GUI,我无法分辨我的公钥存储在哪里。我想与朋友分享。

我点击了导出,这导出了一个 name.asc 文件,但是当我在 gedit 中打开该文件时,它被标记为私钥,所以我假设这不是用于共享的公钥。

mur*_*uru 12

从命令行:

运行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
Run Code Online (Sandbox Code Playgroud)

记下要导出的密钥的指纹。我的公钥的指纹是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-----
Run Code Online (Sandbox Code Playgroud)

您可以将输出重定向到文件:

gpg -a --export AD0CC9B4 > my-pubkey.asc
Run Code Online (Sandbox Code Playgroud)

然后my-pubkey.asc应该包含您的 ASCII 装甲公钥。

相应的私钥可以通过以下方式导出:

gpg -a --export-secret-keys AD0CC9B4
Run Code Online (Sandbox Code Playgroud)

此命令的输出将以

-----BEGIN PGP PRIVATE KEY BLOCK-----
Run Code Online (Sandbox Code Playgroud)