2016-06-24 38 views
1

我使用gpg只是为了加密和解密的目的。禁止在gnupg中发送警告消息

我使用的命令是:

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 "[email protected]>" 
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

STDERR上正在显示的警告,你可以将STDERR流重定向到/dev/null摆脱了警告:

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

保存STDOUT太:

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

这是非常好的。我尝试了一个类似的错误方式。 gpg --decrypt test.gpg 2>/dev/null> test 但在这种情况下,它覆盖了该文件。 但你的回答很好。 它解决了这个问题。 谢谢.. –

+0

@ArunKuttiyaraVarghese很高兴我能帮忙:) – heemayl

0

,但我我得到的警告信息如下:

gpg: Signature made Fri Jun 24 17:29:00 2016 UTC using RSA key ID XXXX 
gpg: Good signature from "[email protected]>" 
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选项。