Comment corriger l'erreur 'gpg failed to sign the data' lors de la signature des commits Git
Rencontrez-vous le message d’erreur error: gpg failed to sign the data
lorsque vous essayez de signer vos commits Git avec GPG ? Ce problème empêche la signature réussie des commits et peut perturber votre flux de travail. Dans cet article, nous expliquerons les causes de cette erreur et fournirons des solutions étape par étape pour la corriger sur différentes plateformes.
Points clés
- L’erreur
gpg failed to sign the data
se produit lorsque Git ne peut pas utiliser GPG pour signer les commits. - Les causes courantes incluent des problèmes d’installation de GPG, des clés expirées et des paramètres Git mal configurés.
- Le dépannage implique de vérifier l’installation de GPG, de vérifier la validité des clés et de définir les variables d’environnement.
- Les solutions spécifiques à la plateforme peuvent nécessiter la mise à jour de GPG, la configuration de Pinentry ou la modification des politiques d’exécution.
- Vérifiez toujours les commits signés pour vous assurer que la signature est valide.
Comprendre l’erreur ‘gpg failed to sign the data’
L’erreur gpg failed to sign the data
se produit lorsque Git est incapable d’utiliser GPG (GNU Privacy Guard) pour signer vos commits. Cela peut se produire pour plusieurs raisons :
- GPG n’est pas installé ou configuré correctement
- Votre clé GPG a expiré ou est invalide
- Les paramètres
gpg.program
ouuser.signingkey
de Git sont mal configurés - La variable d’environnement
GPG_TTY
n’est pas correctement définie
Pour corriger cette erreur, il faut diagnostiquer la cause spécifique et appliquer la solution appropriée.
Étapes de dépannage
Avant d’essayer des correctifs spécifiques à la plateforme, suivez ces étapes générales de dépannage :
-
Vérifiez l’installation de GPG :
gpg --version
-
Vérifiez si GPG peut signer des données :
echo "test" | gpg --clearsign
-
Listez les clés GPG disponibles :
gpg --list-secret-keys --keyid-format=long
Si ces commandes révèlent des problèmes comme Inappropriate ioctl for device
ou Unusable secret key
, passez aux solutions spécifiques à la plateforme ci-dessous.
Corriger ‘gpg failed to sign the data’ sur macOS
-
Désinstallez GPG existant :
brew uninstall gpg
-
Installez GPG2 et Pinentry :
brew install gpg2 pinentry-mac
-
Configurez Pinentry :
echo "pinentry-program $(brew --prefix)/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
-
Redémarrez l’agent GPG :
killall gpg-agent
-
Générez une nouvelle clé GPG :
gpg --full-generate-key
-
Configurez Git pour utiliser la nouvelle clé :
git config --global user.signingkey <new-key-id> git config --global gpg.program gpg
-
Activez la signature des commits :
git config --global commit.gpgsign true
Corriger ‘gpg failed to sign the data’ sur Linux
-
Définissez la variable d’environnement
GPG_TTY
:export GPG_TTY=$(tty)
-
Ajoutez la ligne suivante à votre profil shell (par exemple,
~/.bashrc
,~/.zshrc
) :export GPG_TTY=$(tty)
-
Configurez Git pour utiliser le bon programme GPG :
git config --global gpg.program gpg2
Corriger ‘gpg failed to sign the data’ sur Windows
-
Ouvrez Git Bash ou PowerShell en tant qu’administrateur.
-
Définissez la politique d’exécution pour autoriser l’exécution des scripts :
Set-ExecutionPolicy AllSigned
-
Générez une nouvelle clé GPG :
gpg --full-generate-key
-
Configurez Git pour utiliser la nouvelle clé :
git config --global user.signingkey <new-key-id>
-
Activez la signature des commits :
git config --global commit.gpgsign true
Vérifier les commits signés
Après avoir signé avec succès un commit, vérifiez-le avec :
git log --show-signature -1
Cette commande affiche les informations de signature GPG du commit.
FAQ
GPG est un puissant outil de chiffrement qui vous permet de signer vos commits Git, vérifiant ainsi l'identité de l'auteur du commit et garantissant l'intégrité des données du commit.
Exécutez `gpg --list-keys` et vérifiez la date d'expiration à côté de votre clé. Si la date est passée, votre clé a expiré.
Oui, vous pouvez exporter votre clé GPG et l'importer sur d'autres systèmes pour maintenir une identité de signature cohérente.
Conclusion
En suivant les étapes de dépannage et les solutions spécifiques à la plateforme décrites dans cet article, vous devriez être en mesure de résoudre l’erreur gpg failed to sign the data
et de signer avec succès vos commits Git avec GPG. Assurez-vous que GPG est correctement installé et configuré, que votre clé est valide et que les paramètres Git sont correctement configurés. N’oubliez pas de toujours vérifier vos commits signés pour maintenir l’intégrité de votre dépôt Git.