对签名文件执行验证查询时是否可以传递 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 -