假设我想发布(或发送给某人)一个文件。我还希望该文件的接收者能够验证该文件的任何进一步更新是否来自与原始文件相同的来源/作者。
显而易见的解决方案是发送带有公钥和文件 GPG 签名的原始文件。任何后续更新也将被签名。
然而,验证者必须将公钥导入其本地密钥环。
有没有更灵活、更不显眼的方法?也许不是 GPG,而是别的什么?
例如,像这样的情况是理想的:
toolname --verify --pub path/to/public.key --sig path/to/signature path/to/file-to-verify
看起来 GPG 可以做到这一点,但只能通过 3 个特殊的步骤:
gpg --no-default-keyring --keyring ./temp-keyring.gpg --import pub.key
gpg --no-default-keyring --keyring ./temp-keyring.gpg --verify signature.gpg path/to/file
rm ./temp-keyring.gpg
BSD
signify
。您仍然需要在某个时候交换公钥,但没有密钥环等。将是
signify
非常容易使用。我认为,完整的相关用法可以用四个例子来解释;我在这里只引用 Ted Unangst 和 Marc Espie 的手册页:公钥
newkey.pub
非常短。它看起来像这样:如果您需要非数字分发,可以轻松将其包含在带有墨水签名的二维码中。
如果 你 没有 指定
-x
, 那么 它 就会 是message.txt.sig
.如果使用
sha256sum --tag file1 file2… > SHA256
,则signify -S -s path/to/private.key -m SHA256 -e
,并发送SHA256.sig
:Gzip 档案很特殊,因为您可以在档案本身中嵌入签名而不影响压缩数据。