如何使用特定私钥对文件进行分离签名? ||为什么这会失败?

如何使用特定私钥对文件进行分离签名? ||为什么这会失败?

我有一个.tar.xz文件,我想使用我的gpg私钥对其进行分离签名。

问题是,我有多个私钥导入到我的密钥环中,需要选择使用哪一个。


进步

我正在尝试执行:

gpg --output somefile.tar.xz.sig --detach-sig somefile.tar.xz --local-user [fingerprint]

但我收到错误:

gpg: Note: '--local-user' is not considered an option
gpg: can't open '--local-user': No such file or directory
gpg: signing failed: No such file or directory

我在这里做错了什么以及如何解决它?

答案1

解决方案

我已经使用以下方法来纠正这种情况工作示例:

gpg --local-user [fingerprint] --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz

解析

  • gpg:进行签名的程序;在我的例子中版本是2.2.4

  • --local-user:在我的例子中,将 ID 作为参数或指纹。

  • --sign: 要做gpg的动作。

  • --armor:输出人类可读的字符而不是二进制。

  • --outputgpg: 采用一个不存在的文件名作为参数,这是的工作结果。如果存在,它会询问您是否要覆盖。

  • --detach-sig:指示gpg不直接对文件进行签名,创建单独的签名文件。


非工作示例

  1. 如果您将--local-user及其参数放在末尾,而不是开头,您将得到我的问题中的错误:

    gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]
    

    因此, the--local-user及其参数应首先出现(如果可能)。

  2. 如果你颠倒--output--detach-sig,你会得到一个类似于我的问题的错误:

    gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc
    

结论

给定参数的顺序很重要。这就是它失败的原因。

相关内容