Utiliser la commande "gpg" dans des scripts

"gpg" est la commande utilisée pour le chiffrage de fichiers avec GnuPG : quelques syntaxes de base pour utilisation dans des scripts bash d’automatisation de tâches

, par clem

NB : ici (dans le cadre d’automatisation avec des scripts bash) on envisage uniquement une utilisation de GnuPG avec chiffrement symétrique = avec une phrase de passe et non pas le système "classique" clé privée/publique.

Chiffrer un fichier avec un mot de passe :

Chiffrer le_fichier.txt en le_fichier.txt.gpg avec le mot de passe MonSuperPass_123 :

  1. gpg -c --yes --batch --passphrase=MonSuperPass+123 le_fichier.txt

Explication des options :

  • c : chiffrement symétrique (= utilisation d’une passe-phrase)
  • batch : mode non interactif (= ne rien demander : cf option "yes")
  • yes : répondre "oui" aux éventuelles questions

Déchiffrer un fichier avec son mot de passe :

Déchiffrer le_fichier.txt.gpg avec le mot de passe MonSuperPass_123 :

  1. gpg --batch --passphrase=MonSuperPass+123 le_fichier.txt.gpg

cette commande va créé le fichier le_fichier.txt

One line pour déchiffrer puis re-chiffrer un ensemble de fichiers :

On veut améliorer la sécurité d’un ensemble de fichiers précédemment chiffrés avec le mot de passe le_passe en les re-chiffrant avec le mot de passe MonSuperPass_123
(ces fichiers sont tous situés dans le répertoire où est lancé la commande)

  1. for i in `ls *.gpg`;do echo $i;tmp=`echo $i | sed 's/.gpg/ /g'`;gpg --batch --passphrase=le_passe $i && gpg -c --yes --batch --passphrase=MonSuperPass_123 $tmp && rm $tmp; done

Références :