我使用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中的警告。
答案 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
选项。