Gentoo Linux GPGは引数を介して渡されたファイルを正しく暗号化しますが、stdinから読み取ると「デバイスに適していないioctl」が発生します。

Gentoo Linux GPGは引数を介して渡されたファイルを正しく暗号化しますが、stdinから読み取ると「デバイスに適していないioctl」が発生します。

私はカーネル4.1.7-hardened-r1を使用してGentoo Hardenedを実行しており、GPGを使用してSSHで開かれたシェルセッションでファイルを暗号化しようとしており、変数を無効にして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

これらの 2 行は (bash と仮定) にある必要があり、~/.bashrc新しい端末セッションを開くたびに実行されます。

しかし、別の解決策があります。 bashでは、pvプロセス置換を使用して実行し、ファイルのように偽装することができます。

gpg -o file.gpg --symmetric <(pv file)

したがって、追加の入力が必要なプログラムに項目をリンクするのはおそらく良い考えではありません。予想とは異なる動作があります。

おすすめ記事