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)
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 –