Je veux écrire un script qui crypte automatiquement un fichier en utilisant gpg et un mot de passe enregistré dans un fichier.
J'ai essayé ceci:
gpg -c --passphrase-fd 0 file.txt < pass.txt
Lorsque je lance ceci sur un serveur Ubuntu 16.04, il crypte le fichier, comme prévu. Lorsque je l'exécute sur un poste de travail Ubuntu 18.04, il me demande une phrase secrète, à l'aide de la boîte de dialogue modale de Password Manager.
Comment puis-je ignorer la boîte de dialogue et effectuer un cryptage non interactif?
En guise de solution de contournement, j’ai fait cela en utilisant openssl au lieu de gpg:
openssl aes-256-cbc -pass file:pass.txt -e -in file.txt -out file.txt.enc
J'ai testé dans mon Lubuntu 18.04 LTS.
Votre ligne de commande échoue pour moi de la même manière que vous le décrivez.
La ligne de commande suivante fonctionne pour moi,
gpg --batch -c --passphrase-file pass.txt file.txt
Voir les détails dans man gpg
--passphrase-file file Read the passphrase from file file. Only the first line will be read from file file. This can only be used if only one passphrase is supplied. Obviously, a passphrase stored in a file is of questionable security if other users can read this file. Don't use this option if you can avoid it. Note that this passphrase is only used if the option --batch has also been given. This is different from GnuPG version 1.x.