如何修复“警告:不是独立的签名”?

如何修复“警告:不是独立的签名”?

我正在尝试使用以下命令对 Python 文件进行签名:

gpg --sign --output ./ulagen.py.sig ./ulagen.py

当我使用验证签名时gpg --verify ./ulagen.py.sig,出现以下错误:

gpg: WARNING: not a detached signature; file 'ulagen.py' was NOT verified!

我究竟做错了什么?

答案1

如果您想要一个独立的签名,您需要使用:

gpg --detach-sig --sign --output ./ulagen.py.sig ./ulagen.py

但是什么是分离签名?默认情况下,GPG 会创建一个签署副本文件的。因此,如果你使用

gpg --sign --output ./ulagen.py.sig ./ulagen.py

该文件ulagen.py.sig将包含压缩副本ulagen.py它的签名

您可以使用命令

gpg --output ./ulagen-restored.py --decrypt ./ulagen.py.sig

这将提取其中包含的文件ulagen.py.sig并将其保存为ulagen-restored.py

只需使用以下方法验证文件

gpg --verify ./ulagen.py.sig

将验证签名是否与文件匹配包含在 ulagen.py.sig。它与文件没有任何关系ulagen.py,这就是 GPG 告诉您的。

分离的签名只是签名无副本该文件。要验证它,您需要单独使用此文件。

答案2

我实际上喜欢通过纯 ASCII 输出创建分离签名。使用选项即可实现--armor。否则,默认 GPG 将生成二进制输出(sig 文件)。

要创建这样一个整洁的独立签名(asc):

gpg --detach-sig --armor <file>

相关内容