我正在使用内核 4.1.7-hardened-r1 运行 Gentoo Hardened,并且尝试从 SSH 打开的 shell 会话中使用 GPG 来加密文件,并禁用变量,DISPLAY
以便使用 pinentry-curses 进行密码提示。使用gpg -o file.gpg --symmetric file
我可以很好地加密。使用pv file | gpg -o file.gpg --symmetric
我收到以下错误消息:
gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device
答案1
您应该设置GPG_TTY
环境变量才能使其正常工作,如下所示这个文件:
GPG_TTY=$(tty)
export GPG_TTY
这两行应该在你的~/.bashrc
(假设是 bash)中,所以每次你打开新的终端会话时它们都会运行。
不过,还有另一种解决方案:在 bash 中,您可以pv
使用进程替换来运行并假装它是一个文件:
gpg -o file.gpg --symmetric <(pv file)
因此,将事物通过管道输入到需要额外输入的程序可能不是一个好主意。它的工作方式可能与预期不同。