私はカーネル4.1.7-hardened-r1でGentoo Hardenedを実行しており、SSHから開いたシェルセッションから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
このドキュメント のように、それが機能するようにGPG_TTY変数を設定する必要があります。
GPG_TTY=$(tty)
export GPG_TTY
これらの2行は.bashrc
(bashを想定)、新しいターミナルセッションを開くたびに実行されます。
ただし、別の解決策があります。bashでは、pv
を実行し、プロセス置換を使用して、ファイルであるかのように見せかけることができます。
gpg -o file.gpg --symmetric <(pv file)
そのため、追加の入力を期待するプログラムにパイプインすることは良い考えではないかもしれません。予想とは異なる動作をする可能性があります。