GPG密钥是否存在于列表中?

Los*_*ear 7 bash shell gnupg

我想创建一个shell脚本,之前我还没有使用它.gpg有一个命令:

gpg --keyserver SERVER --recv-keys  KEY
Run Code Online (Sandbox Code Playgroud)

问题是如果已经添加了密钥,我不想运行此命令.是否有任何方法可以检查密钥列表中是否存在密钥?谢谢!

Jen*_*rat 7

运行gpg --list-keys [key-id](或缩写命令-k),如果存在匹配键,则返回代码为0(成功),否则返回其他内容(失败).不要列出grep其他人在评论中提出的所有密钥和之后的密钥,密钥密钥中的大量密钥会变得非常慢.跑

gpg --list-keys [key-id] || gpg --keyserver [server] --recv-keys [key-id]
Run Code Online (Sandbox Code Playgroud)

获取丢失的密钥,可能会丢弃第一个gpg调用的输出(gpg --list-keys [key-id] >/dev/null 2>&1 || ...),因为您只对返回代码感兴趣.

意识到

  • 不时更新密钥可能是获取撤销的合理方法
  • 特别是不应使用短密钥ID,尽可能使用整个指纹.