在gnupg中禁止警告消息

时间:2016-06-24 21:49:07

标签: bash gnupg

我使用gpg仅用于加密和解密目的。

我使用的命令是:

for enc:
gpg --sign test
for dec:
gpg --decrypt test.gpg > test

但是我收到了警告信息:

gpg: Signature made Fri Jun 24 17:29:00 2016 UTC using RSA key ID XXXX
gpg: Good signature from "XXXX@xxxx.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.

当然我试过了 --status-fd, --no-comment, --no-mdc-warning,--no-tty ,--no-verbose --quiet --batch, --no-greeting etc基于互联网搜索。

有没有办法摆脱这些警告信息?

作为最后一种选择,我正在使用 How to hide command output in bash

但我认为应该有一种简单的方法来抑制gpg中的警告。

2 个答案:

答案 0 :(得分:3)

STDERR上显示警告,您可以将STDERR流重定向到/dev/null以消除警告:

gpg --decrypt test.gpg 2>/dev/null

保存STDOUT:

gpg --decrypt test.gpg 2>/dev/null >test

答案 1 :(得分:1)

  

但是我收到了警告信息:

gpg: Signature made Fri Jun 24 17:29:00 2016 UTC using RSA key ID XXXX
gpg: Good signature from "XXXX@xxxx.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.

前两行实际上不是警告消息,只是告诉您正确的签名(您解密的文件不仅是加密的,而且还是签名的)。最后两条消息表明无法验证签名密钥。

不要简单地丢弃所有输出到stderr,因为这会隐藏实际的问题和错误!而不是简单地抑制所有警告和错误消息,更好地考虑这个单独的消息。问题是密钥无法验证,即。不能建立信任路径。鉴于您验证了密钥(确定所有者),最佳解决方案是颁发认证。打开GnuPG密钥编辑命令行:

gpg --edit-key [key-id]

然后使用sign命令验证密钥。如果您想确保认证不会离开您的计算机,您还可以lsign(本地签署)密钥。

或者(并且仅用于测试环境,或者如果您确定已经验证了密钥,或者肯定不必关心消息的来源),则可以应用--trust-model always选项。