git commit signature a échoué: key secrète non disponible

J'obtiens cette erreur en essayant de commettre en utilisant Git.

gpg: skipped "name <name@mail.com>": secret key not available gpg: signing failed: secret key not available error: gpg failed to sign the data fatal: failed to write commit object 

J'ai généré une nouvelle key comme ci-dessous mais elle donne toujours la même erreur

 gpg --list-keys ~/.gnupg/pubring.gpg -------------------------------- pub 2048R/35F5FFB2 2016-04-23 uid name (New key) <name@mail.com> sub 2048R/112A8C2D 2016-04-23 

La key secrète est la même que ci-dessus

J'ai trouvé cette Génération d'une key GPG pour le marquage git et suivi les étapes, mais cela ne fonctionne toujours pas, aucune idée?

Solutions Collecting From Web of "git commit signature a échoué: key secrète non disponible"

Vous devez configurer la key secrète avant de l'utiliser.

 git config user.signingkey 35F5FFB2 

Ou global si vous allez utiliser la même key pour chaque référentiel.

 git config --global user.signingkey 35F5FFB2 

Source: https://git-scm.com/book/es/v2/Git-Tools-Signing-Your-Work

Ce qui fonctionnait pour moi était d'append

 git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe" 

Si vous voulez find le path complet de gpg2.exe:

 where gpg2.exe 

Vous devez définir la variable GNUPGHOME . Sans cela, GnuPG n'est pas capable de find vos keys.

 # On unix add it to your path # On windows it will usually be under: <drive>:\Users\<username>\AppData\Roaming\gnupg 

Sur Unix, il suffit de l'append au path.
Sous Windows, vous devez ouvrir le panneau de configuration et le définir comme

 System Variable Name: GNUPGHOME Path: <drive>:\Users\<username>\AppData\Roaming\gnupg 

J'aime compléter toutes ces réponses, parce que j'ai beaucoup de problèmes avec ça.

Ces exemples utilisent le drapeau --global , mais vous pouvez le supprimer si vous le souhaitez localement.

Configurer la key secrète dans git

 git config --global user.signingkey 35F5FFB2 

Configurer le programme gpg de sorcière à utiliser dans git (optionnel)

Certains systèmes (Ubuntu par exemple) peuvent avoir gpg et gpg2 en même time. Vous devez spécifier que vous utiliserez gpg2

 git config --global gpg.program gpg2 

Exporter GPG_TTY (optionnel)

Il est possible si vous utilisez ces commands dans un environnement ssh que vous avez l'erreur suivante: Inappropriate ioctl for device ou gpg: échec de la signature : Ioctl() inapproprié pour un périphérique . Cela peut être réparé via:

 export GPG_TTY=$(tty) 

Activer automatiquement le chant GPG (facultatif)

 git config --global commit.gpgsign true 

Peut-être que vous avez besoin de cloner votre propre repository où vous avez des droits. J'ai eu ce problème lorsque j'ai cloné le référentiel d'une autre personne.