Il est possible de signer vos commits Git à l’aide de votre clé GnuPG (GPG).

Cela peut paraitre superflu aux premiers abords, néanmoins cela permet d’assurer l’authenticité de vos commits aux yeux du monde entier tel que sur l’image ci-dessus.

Ainsi, comme vous l’aurez compris, il est nécessaire de posséder une clé GPG.

Dans le cas où vous ne l’avez pas déjà, pour en créer une, il suffit de procéder comme suit :

Installer l’outil GnuPG :

# En tant que super-utilisateur
apt-get update
apt-get install gnupg --no-install-recommends
# En tant que super-utilisateur
dnf install gnupg2
# Requiert Homebrew
brew install gnupg

Créer une clé GPG (répondre aux questions) :

gpg --full-generate-key

Une fois la clé GPG créée/en possession, il faut maintenant obtenir son ID. Pour cela, la commande suivante permet de l’obtenir :

gpg --list-keys votre@email.com

Dans l’exemple ci-dessus, l’ID de la clé est 95AE384B6F1D508097FD559E65F575B781E266A6 .

Il faut maintenant indiquer à git de l’utiliser pour signer les commits. Pour cela, la commande suivante permet cela (remplacer la clé par la vôtre) :

git config --global user.signingkey 95AE384B6F1D508097FD559E65F575B781E266A6

Une fois fait, utilisez l’argument -S lors d’un git commit pour signer ce dernier, tel que :

git commit -S -m 'Fix bug #123'

Il vous sera alors demandé le mot de passe de la clé GPG si elle en possède une (ce qui devrait être le cas) smile

Pour que ce soit automatiquement fait à chaque nouveau commit, la commande suivante vous aidera :

git config --global commit.gpgsign true

Il reste une dernière étape afin de lier cette clé à votre profil GitHub.

Se rendre dans les paramètres de votre compte GitHub > SSH and GPG keys > New GPG key . Ajoutez la clé publique GPG correspondante. Vous pouvez obtenir cette dernière à l’aide de la commande (copier/coller le résultat)

gpg --armor --export votre@email.com

Une dernière petite astuce : Vous pouvez également signer les tags en utilisant l’option -s au lieu de -a lors vous créer un tag git, tel que :

git tag -s v1.0 -m 'Release 1.0'

Cas de l’erreur ‘error: gpg failed to sign the data / fatal: failed to write commit object’

Si jamais vous rencontrez cette erreur lors de la signature de vos commits, il suffit alors d’ajouter la ligne suivante :

GPG_TTY=$(tty)

Dans le fichier /etc/environment et relancer votre session utilisateur.

C’est terminé ! A ce stade, vous pouvez maintenir signer tous vos commits git (entre-autres) et assurer leur authenticité aux yeux de tous  .

– FIN –