web-dev-qa-db-fra.com

Génération d'une clé GPG pour le marquage git

J'essaie de créer des balises signées dans GitHub en utilisant la ligne de commande git. J'ai généré une clé GPG avec un (exemple) nom d'utilisateur Full Name (skytreader) <[email protected]>. Cela fait, j'essaie de créer un tag signé . Cependant, j'obtiens l'erreur suivante:

gpg: skipped "full <[email protected]>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

Je pense que j'ai juste besoin de créer une autre clé avec le nom d'utilisateur indiqué. Mais alors, en saisissant le nom "complet", gpg se plaint que mon nom doit contenir au moins 5 caractères.

Comment utiliser cette clé avec git?

Dois-je changer le nom d'utilisateur utilisé par git pour signer mes tags avec GPG afin d'obtenir un vrai nom d'au moins 5 caractères?

39
skytreader

Le nom du committer se trouve dans votre ~/.gitconfig fichier. Remplacez cette entrée par un vrai nom (c'est de cette façon que vous voulez vous engager, de toute façon). Vous pouvez éditer le fichier dans votre éditeur préféré, ou simplement émettre:

git config --global user.name "<name>"
16
Christopher

Vous devez d'abord vérifier s'il existe une clé gpg pour votre ID.

$ gpg --list-key

Si vous avez devrait apparaître quelque chose comme ceci:

  1. pub 2048R/6AB3587A 2013-05-23
  2. uid xxx (gpg pour xxx)
  3. sous 2048R/64CB327A 2013-05-23

S'il n'y a pas de clé gpg. Vous devez créer

$ gpg --gen-key

Ensuite, vous avez cette sortie:

gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc. Il s'agit d'un logiciel gratuit: vous êtes libre de le modifier et de le redistribuer. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.

Veuillez sélectionner le type de clé que vous souhaitez:

  1. (1) RSA et RSA (par défaut)
  2. (2) DSA et Elgamal
  3. (3) DSA (signe uniquement)
  4. (4) RSA (signe uniquement)

Votre sélection? Les clés RSA peuvent avoir une longueur comprise entre 1024 et 4096 bits. Quelle taille de clé voulez-vous? (2048)
La taille de clé demandée est de 2048 bits
Veuillez spécifier la durée de validité de la clé.

         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years

La clé est valide pour? (0)
La clé n'expire pas du tout
Est-ce correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: xxx
Email address: [email protected]
Comment: gpg for xxx

You selected this USER-ID:
    "xxx(gpg for xxx) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

can't connect to `/xxx/.gnupg/S.gpg-agent': No such file or directory
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
39
mmcorrelo

Si vous avez déjà généré une clé, vous pouvez dire à git d'utiliser cette clé spécifique sans se soucier de la correspondance entre votre ID utilisateur git (nom + email) et l'ID de la clé GPG. Vous devriez avoir votre git user.email correspond à l'un des e-mails de votre clé GPG pour que vos balises signées ou commits soient utiles aux autres utilisateurs.

Pour définir la clé pour une utilisation globale sur votre ordinateur, définissez votre configuration globale git avec:

git config --global user.signingkey 6AB3587A

Ou, vous pouvez définir le user.signingkey uniquement pour le référentiel actuel dans lequel vous vous trouvez:

git config user.signingkey 6AB3587A
8
user2943160