如何在bash中获取GPG公钥?

G. *_*ard 4 bash

我需要从 GPG 获取公钥 ID。SO 上的所有内容都讨论了导入、导出等。在下面的示例中,我需要获取要ABCD1234在 bash 脚本中使用的值?

$ gpg --list-keys  
/Users/jblow/.gnupg/pubring.gpg  
---------------------------------  
pub   2048R/ABCD1234 2016-09-20
uid       [ultimate] Joe Blow <joe.blow@nowhere.com>
sub   2048R/JDKKHU76 2016-09-20
Run Code Online (Sandbox Code Playgroud)

eye*_*tea 5

我今天面临着同样的要求(提取密钥 ID 以便将其与 bash 脚本中的口是心非一起使用)。

在 gpg 的手册页中我读到:

对于gpg 的脚本化或其他无人值守使用,请确保使用机器可解析的接口,而不是供人类直接使用的默认接口。机器可解析的接口提供了一个稳定且记录良好的 API,独立于 gpg 的语言环境或未来的变化。要启用此界面,请使用选项--with-colons和 --status-fd。对于某些操作,选项 --command-fd 也可能会派上用场。有关接口的规范,请参阅本手册页和文件“DETAILS”。

我通过执行以下操作成功提取了我想要的密钥 ID:

gpg --list-signatures --with-colons | grep 'sig' | grep 'the Name-Real of my key' | head -n 1 | cut -d':' -f5
Run Code Online (Sandbox Code Playgroud)

PS:https: //devhints.io/gnupg有帮助;)