GPG使用-o -输出到终端时,如何防止日志信息混入输出?
解决GPG 1.4.20解密时日志混入输出的问题
针对你遇到的GPG解密时终端输出混入状态日志的问题,在GPG 1.4.20版本下有两种简单的解决方法:
方法1:使用GPG内置参数抑制日志
GPG提供了--quiet参数来减少状态输出,只保留关键的错误信息(如果存在)。修改你的解密命令如下:
gpg --batch --quiet -o - --passphrase SomePassword some_filename
添加--quiet后,GPG会自动屏蔽gpg: AES encrypted data和gpg: encrypted with 1 passphrase这类常规状态日志,只输出解密后的文件内容。
方法2:重定向标准错误输出
那些状态日志实际上是GPG输出到**标准错误(stderr)的内容,而解密后的明文是输出到标准输出(stdout)**的。你可以通过将stderr重定向到/dev/null来彻底隐藏这些日志:
gpg --batch -o - --passphrase SomePassword some_filename 2>/dev/null
这里的2>/dev/null表示把stderr的内容丢弃,终端只会显示解密后的明文。
额外提示
注意:在命令行直接使用--passphrase存在安全风险,其他用户可以通过ps命令看到你的密码。如果是生产环境,建议使用--passphrase-fd从文件或管道读取密码,或者让GPG交互式提示输入密码(去掉--batch和--passphrase参数)。
内容的提问来源于stack exchange,提问作者Samuil Banti
相关产品推荐
相关产品推荐

