Gentoo Linux GPG crypte correctement un file passé par le paramètre, mais lance "ioctl inapproprié pour le périphérique" lors de la lecture de l'input standard

Je cours Gentoo Hardened avec le kernel 4.1.7-hardened-r1 et j'essaye de chiffrer un file en utilisant GPG à partir d'une session shell ouverte à partir de SSH et avec la variable DISPLAY désactivée afin d'utiliser pinentry-curses pour l'invite de mot de passe. En utilisant gpg -o file.gpg --symmesortingc file je peux crypter très bien. Utilisation du pv file | gpg -o file.gpg --symmesortingc pv file | gpg -o file.gpg --symmesortingc J'ai le message d'erreur suivant:

 gpg-agent[30745]: command get_passphrase failed: Inappropriate ioctl for device 

Vous devez définir votre variable GPG_TTY pour qu'elle fonctionne, comme dans ce document :

 GPG_TTY=$(tty) export GPG_TTY 

Ces deux lignes sont censées être dans votre .bashrc (en supposant bash), donc elles sont exécutées à chaque fois que vous ouvrez une nouvelle session de terminal.

Il existe cependant une autre solution: dans bash, vous pouvez exécuter votre pv et prétendre que c'est un file, en utilisant la substitution de process:

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

En tant que tel, il pourrait ne pas être une bonne idée de mettre les choses dans les programmes qui attendent des inputs supplémentaires. Cela peut fonctionner différemment que prévu.