GPG 密钥存在于列表中



我想创建一个shell脚本,但我以前没有使用过它。有一个用于 gpg 的命令:

gpg --keyserver SERVER --recv-keys  KEY

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

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

gpg --list-keys [key-id] || gpg --keyserver [server] --recv-keys [key-id]

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

请注意

  • 不时更新密钥可能是获取吊销的合理做法
  • 特别是切勿使用短密钥ID,如果可能,请使用整个指纹。

你可以做:

[[ $(gpg --list-keys | grep -w KEY) ]] && echo "Key exists" ||
gpg --keyserver SERVER --recv-keys  KEY

附加(适用于合适的钥匙圈):

[[ $(apt-key list | grep -w KEY) ]] && echo "Key exists" ||
gpg --keyserver SERVER --recv-keys  KEY

如果apt-key可用

正确的方法是运行以下命令

gpg --keyserver hkp://keyserver.ubuntu.com -k [your-key-id]

相关内容

  • 没有找到相关文章

最新更新