如何在不导入的情况下将 gpg 公钥从二进制转换为 ascii

rla*_*ter 12 gnupg

key.gpg我有一个二进制格式的GPG 公钥。我想将其转换为 ASCII,以便生成的文件具有标头

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

我为此设置的流程无法访问通常的中央密钥存储,因此我无法导入然后导出。

执行此操作的 GnuPG(版本 2)命令是什么?

小智 6

gpg --enarmor < key.gpg > key.asc
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。

  • 这会放置标题“-----BEGIN PGP ARMORED FILE-----”,而不是我想要的标题。如果唯一的区别是标题,我想我可以手动更改它...... (3认同)

小智 5

也许您可以创建另一个临时密钥环来导入和导出密钥,如下所示:

gpg  --keyring /tmp/temp.gpg  --no-default-keyring --import key.gpg 
gpg  --keyring /tmp/temp.gpg  --no-default-keyring  --export -a
Run Code Online (Sandbox Code Playgroud)

我觉得不太优雅,但应该可以。请注意,第二个命令将密钥环中存在的所有密钥导出到一个文件中。


小智 5

gpg --keyring ./key.gpg --no-default-keyring --export -a > key.asc
Run Code Online (Sandbox Code Playgroud)

请注意使用 而./key.gpg不仅仅是key.gpg:GnuPG 不会执行您对后者的期望,而是会创建一个空的密钥环~/.gnupg/key.gpg