web-dev-qa-db-fra.com

Configurer GPG pour Git sous Windows

J'ai installé Git pour Windows, y compris Git Bash sur Windows 10 et Gpg4win. Par défaut, j'ai dû réimporter toutes les clés que j'ai créées via Kleopatra dans la version GPG intégrée au Git Bash, et cela ne me permettra pas de configurer un agent. Ce que je dois faire est d'automatiser le chant de telle sorte que je n'ai pas besoin d'entrer le mot de passe à chaque fois, mais plutôt seulement la première fois dans une période de temps donnée. Comment est-ce possible?

J'ai essayé de suivre ce tutoriel , mais gpg2 n'utilise pas le jeu de caractères correct lorsqu'il est exécuté depuis Git Bash, donc il ne reconnaît pas les clés qui contiennent des caractères non ASCII.

Existe-t-il un moyen de résoudre ce problème? Quelle est la meilleure façon d'utiliser la signature PGP avec Git sous Windows?

15
just.me

Mise à jour d'octobre 2018, comme commenté ci-dessous par PHPirate :

λ git --version
git version 2.19.1.windows.1

λ gpg --version
gpg (GnuPG) 2.2.9-unknown
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.

Aucune trace de cette mise à jour dans git-for-windows/git/releases


Réponse originale (2017): par défaut, Git pour Windows inclut un gpg1, pas un gpg2

vonc@bvonc MINGW64 ~/.ssh
$ gpg --version
gpg (GnuPG) 1.4.21

Il est en effet recommandé d'utiliser un autre gpg:

git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"

Essayez à nouveau avec le dernier Git pour Windows avec TF-8 défini dans les paramètres régionaux .
Essayez un Git simplified path pour exclure toute interférence provenant d'autres programmes.

18
VonC

Depuis (au moins) git 2.19.1, git inclut gpg2!

Cela signifie que vous n'êtes plus obligé d'installer gpg4win uniquement pour la signature git. Vous demandez comment configurer la signature de validation de manière à ce que vous n'ayez à saisir votre mot de passe qu'après un certain délai: gpg-agent peut gérer cela, et j'ai testé qu'il fonctionne avec le gpg de git (mais pas avec le gpg de gnupg). Bien que cela ne fonctionne pas toujours pour moi, cela devrait fonctionner en général.

Ci-dessous est un bref résumé des instructions complètes que j'ai écrites ici , en supposant que vous avez configuré la signature:

  1. Assurez-vous que vous utilisez le gpg de git
  2. Mettez à jour l'heure du cache, dans C:\Users\username\.gnupg\gpg-agent.conf (créez le fichier s'il n'existe pas), ajoutez default-cache-ttl 34560000 et max-cache-ttl 34560000. Ces temps sont en secondes, choisissez ce que vous voulez.
  3. Redémarrez gpg-agent à l'aide de gpgconf --kill gpg-agent.
6
PHPirate