我想创建一个 shell 脚本,但我以前没有使用过它。 gpg有一个命令:
gpg --keyserver SERVER --recv-keys KEY
问题是如果 key 已经添加,我不想运行这个命令。有什么方法可以检查 key 列表中是否存在 key ? 谢谢!
最佳答案
运行 gpg --list-keys [key-id]
(或缩写命令 -k
),如果出现以下情况,返回码为 0(成功)存在匹配的 key ,否则存在其他问题(失败)。不要像评论中的其他人所建议的那样列出所有 key ,然后 grep
,对于 key 环中的大量 key ,这将变得可怕慢。运行
gpg --list-keys [key-id] || gpg --keyserver [server] --recv-keys [key-id]
获取丢失的 key ,可能会丢弃第一个 gpg
调用的输出 (gpg --list-keys [key-id] >/dev/null 2>&1 || ...
),因为您只对返回码感兴趣。
请注意
- 不时更新 key 可能是获取撤销的合理做法
- 特别是short key IDs should never be used , 尽可能使用整个指纹。
关于bash - GPG key 存在于列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986413/