web-dev-qa-db-fra.com

Comment puis-je chiffrer un fichier avec gpg de manière non interactive?

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
1
user13097

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.
1
sudodus