![通过传递在线托管而不是本地存储(即在密钥环中)的签名来使用 GPG 来验证签名的文件?](https://linux22.com/image/1427675/%E9%80%9A%E8%BF%87%E4%BC%A0%E9%80%92%E5%9C%A8%E7%BA%BF%E6%89%98%E7%AE%A1%E8%80%8C%E4%B8%8D%E6%98%AF%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%EF%BC%88%E5%8D%B3%E5%9C%A8%E5%AF%86%E9%92%A5%E7%8E%AF%E4%B8%AD%EF%BC%89%E7%9A%84%E7%AD%BE%E5%90%8D%E6%9D%A5%E4%BD%BF%E7%94%A8%20GPG%20%E6%9D%A5%E9%AA%8C%E8%AF%81%E7%AD%BE%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
对签名文件执行验证查询时是否可以传递 GnuPG 签名的 URL?
例如,而不是:
gpg --verify file.txt
有没有类似这样的变化:
gpg --import example.com/key.sig --verify file.txt
显然,您可以从密钥服务器导入并附加行,&&
然后进行验证,但这并不能完全满足我的目的,所以我想知道是否有人可以建议替代方案。
答案1
我不完全确定你想要实现什么。签名文件的文件名未导入!我将答案分为两部分,具体取决于您实际想要实现的目标。我更改了示例 URI 以反映实际用途,但文件名对 GnuPG 来说根本不重要。
未导入密钥
当 GnuPG 验证签名文件时,它还会验证有效性的密钥。此操作要求密钥位于密钥环中。
如果你担心钥匙圈中没有经过验证的钥匙,可以考虑使用另一种$GNUPGHOME
方法,比如
export GNUPGHOME=/tmp/gpg-verify
curl http://example.com/key.asc | gpg --import
gpg --verify file.txt
rm -r /tmp/gpg-verify
根据分离签名进行验证
如果要从 URI 加载(分离的)签名,请使用 curl 并将签名导入gpg
。来自man gpg
:
--verify
假设第一个参数是签名文件或分离签名,并验证它而不生成任何输出。如果没有参数,则从中读取签名数据包
STDIN
。
使用的命令行类似于
curl http://www.example.com/signature.asc | gpg --verify file.txt
答案2
您可以使用破折号来表示应该从 stdin 读取的文件:
curl -L https://exmple.com/file.txt.asc | gpg --verify - file.txt
curl -L https://exmple.com/file.txt | gpg --verify file.txt.asc -