Aller au contenu

Chiffrer/Déchiffrer un fichier avec GPG

Chiffrer un fichier (avec un environnement graphique) :

gpg -c monfichier.ext

un mot de passe ou phrase de passe sera demandée

Déchiffrer un fichier:

gpg monfichier.ext.gpg

le mot de passe ayant servi au chiffrement sera demandé

Chiffrer un fichier dans un terminal (mode non interactif):

gpg --yes --batch --passphrase=[Entrer la phrase de passe ou mot de passe] -c monfichier.ext

Déhiffrer un fichier dans un terminal (mode non interactif):

gpg --yes --batch --passphrase=[Entrer la phrase de passe ou mot de passe] monfichier.ext.gpg

Inspiré du site: https://www.if-not-true-then-false.com/2010/linux-encrypt-files-decrypt-files-gpg-interactive-non-interactive/

Pour aller plus loin: https://blog.doshi.re/2018/07/les-commandes-pratiques-de-gpg/#fn:clef-publique/

  • ! Attention ! mettre un mot de passe dans bash reste dans l'historique de bash, il faudra veiller à supprimer l'historique de bash en remettant des zéros dans le fichier .bash_history:

    cat /dev/null > ~/.bash_history

Chiffrer un fichier avec une paire de clé

gpg -e "monfichier.txt.gpg"
  • L'identité (identifiant) sera demandé et ensuite le fichier sera chiffré !

Déchiffrer un fichier avec une paire de clé

gpg -d "monfichier.txt.gpg"
  • La passphrase sera demandée !

Afin d'extraire le fichier vers son format d'origine il faudra saisir la commande:

gpg -d "monfichier.txt.gpg" > monfichier.txt
  • La passphrase sera demandée !

Créer une paire de clé GPG

gpg --full-generate-key

Si on se trouve sur un serveur sans gui, il faudra utiliser l'option --pinentry-mode loopback, qui permettra de rentrer une passphrase dans le terminal plutôt que dans un outil graphique (gestionnaire de clé de Gnome,...)

gpg --pinentry-mode loopback --full-generate-key
  • Choisir le premier choix RSA
  • Préciser la taille de la clé; idéalement 4096
  • Choisir si elle expire ou non
  • Mettre son nom réel ainsi qu'une adresse email valide
  • Mettre un commentaire (facultatif)

Patienter pendant la génération des clés

Inspiré de: https://help.github.com/en/articles/generating-a-new-gpg-key

Lister les clés privées et publiques présentes sur le système

Lister les clés publiques:

gpg --list-keys

Lister les clés privées:

gpg --list-secret-keys

Exporter les clés privées et publiques

Pour exporter la clé publique, on utilisera:

gpg --export "identifiant" > ma-clé-publique.key
  • L'identifiant peut être l'uid de la liste des clés, ou bien l'adresse email, ou encore le nom réel donné à la création.

Pour exporter la clé privée, on utilisera:

gpg --export-secret-keys "identifiant" > ma-clé-privée.key
  • L'identifiant peut être l'uid de la liste des clés, ou bien l'adresse email, ou encore le nom réel donné à la création.

Importer les clés privées et publiques

Pour importer la clé publique, on utilisera:

gpg --import < ma-clé-publique.key

Pour importer la clé privée, on utilisera:

gpg --import < ma-clé-privée.key

Inspiré de: http://www.koozie.org/blog/2014/07/migrating-gnupg-keys-from-one-computer-to-another/

Supprimer les clés privées et publiques

Pour supprimer la clé publique, on utilisera:

gpg --delete-keys "identifiant"

Pour supprimer la clé privée, on utilisera:

gpg --delete-secret-and-public-keys "identifiant"