我有一个.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
:输出人类可读的字符而不是二进制。--output
gpg
: 采用一个不存在的文件名作为参数,这是的工作结果。如果存在,它会询问您是否要覆盖。--detach-sig
:指示gpg
不直接对文件进行签名,创建单独的签名文件。
非工作示例
如果您将
--local-user
及其参数放在末尾,而不是开头,您将得到我的问题中的错误:gpg --sign --armor --output somefile.tar.xz.asc --detach-sig somefile.tar.xz --local-user [fingerprint]
因此, the
--local-user
及其参数应首先出现(如果可能)。如果你颠倒
--output
和--detach-sig
,你会得到一个类似于我的问题的错误:gpg --local-user [fingerprint] --sign --armor --detach-sig somefile.tar.xz --output somefile.tar.xz.asc
结论
给定参数的顺序很重要。这就是它失败的原因。