web-dev-qa-db-fra.com

Gentoo Linux GPG crypte correctement un fichier passé par le paramètre, mais jette "IOCTL inapproprié pour le périphérique" lors de la lecture d'une entrée standard

Je cours gentoo durcie avec le noyau 4.1.7-Harded-R1 et j'essaie de chiffrer un fichier à l'aide de GPG à partir d'une session Shell ouverte à partir de SSH et avec la variable DISPLAY variable désactivée afin d'utiliser des malédictions à la pince. Invite de mot de passe. À l'aide de gpg -o file.gpg --symmetric file Je peux crypter juste bien. À l'aide de pv file | gpg -o file.gpg --symmetric Je reçois le message d'erreur suivant:

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

Vous devez définir une variable GPG_TTY de YouT pour qu'il fonctionne, comme dans ce document :

GPG_TTY=$(tty)
export GPG_TTY

Ces deux lignes sont censées être dans votre .bashrc (supposant que Bash), ils sont donc courus à chaque fois que vous ouvrez une nouvelle session de terminal.

Il y a une autre solution, cependant: dans BASH, vous pouvez exécuter votre pv et prétendre que c'est un fichier, en utilisant la substitution de processus:

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

En tant que tel, ce n'est peut-être pas une bonne idée de pipeler les programmes qui s'attendent à des contributions supplémentaires. Cela peut fonctionner différemment que prévu.

44
TNW