Aller au contenu

Git Commit avec Signature

Création de votre paire de clés principales

  1. Lancez l'assistant de génération de paires de clés
gpg --full-generate-key --expert
  1. Sélectionnez l'option (9) ECC et ECC pour le type de clé

  2. Sélectionnez l'option (1) Curve 25519 pour la courbe elliptique

  3. Définissez la période de validité de votre choix, idéalement inférieure à 1 an

  4. Veuillez indiquer votre nom réel et votre adresse courriel à associer à cette paire de clés. L'adresse courriel doit correspondre à votre adresse courriel Github vérifiée ou être définie sur your-github-username@users.noreply.github.com.

  5. Entrez une phrase secrète (deux fois)

Création d'une paire de clés de signature

  1. Ajoutez une sous-clé de signature
gpg --expert --edit-key my@email.addr
gpg> addkey
  1. Sélectionnez l'option (10) ECC (sign only) pour le type de clé

  2. Sélectionnez l'option (1) Curve 25519 pour la courbe elliptique

  3. Définissez la période de validité de votre choix, idéalement inférieure à 1 an

  4. Confirmez les invites et saisissez une phrase secrète (deux fois)

  5. Sauvegarder et quitter

gpg> save

Création d'un certificat de révocation

gpg --output my_email_addr.gpg-revocation-certificate --gen-revoke my@email.addr

Sauvegardez votre paire de clés

Exportez la paire de clés primaires (conservez-les dans un endroit très sûr avec le certificat de révocation)

gpg --export-secret-keys --armor my@email.addr > my_email_addr.private.gpg-key
gpg --export --armor my@email.addr > my_email_addr.public.gpg-key

Enlevez la paire de clés principale de votre porte-clés

  1. Exportez toutes les sous-clés de la nouvelle paire de clés dans un fichier
gpg --export-secret-subkeys my@email.addr > $HOME/.gnupg/subkeys
  1. Supprimer la clé principale du porte-clés - ASSUREZ-VOUS DE SAUVEGARDER VOTRE PAIRE DE CLÉS PRINCIPALES AU PRÉALABLE !
gpg --delete-secret-key my@email.addr
  1. Réimportez les clés précédemment exportées
gpg --import $HOME/.gnupg/subkeys
  1. Cherchez sec# au lieu de sec dans le résultat ; le symbole dièse (#) indique que la sous-clé de signature ne fait pas partie de la paire de clés située dans le trousseau.
gpg --list-secret-keys $HOME/.gnupg/secring.gpg

Révocation d'une paire de clés de signature

Trouvez la paire de clés principales et importez-la (de préférence dans un système éphémère comme une clé USB live)

 gpg --import /path/to/my_email_addr.public.gpg-key /path/to/my_email_addr.private.gpg-key
 gpg --edit-key my@email.addr
 gpg> revkey
 [ passphrase twice ]
 gpg> save

Renouveler une paire de clés expirée ou sur le point d'expirer

 gpg --edit-key my@email.addr
 [select a key]
 gpg> expire
 [specify an expiration]
 gpg> save

Création d'un commit Git signé unique

 git commit -S -m "my awesome signed commit"

Configuration de Git afin de toujours signer les commits avec une clé spécifiée

 gpg --list-secret-keys --keyid-format=long # grab the fingerprint from the 'sec' line
 git config [--global] commit.gpgsign true
 git config [--global] user.signingkey DEADB33FBAD1D3A

Configuration de VSCode pour signer les commits


Téléchargement de votre clé publique sur un serveur de clés

 gpg --keyserver pgp.mit.edu --send-keys 0xDEADB33FBAD1D3A

Assurez-vous que votre clé a été publiée

 gpg --keyserver pgp.mit.edu --search-key my@email.addr

Références

Additional Information

If you have questions with respect to this content or to report concerns regarding the use or misuse content please do not hesitate to contact us at info@rockylinux.org.

Rocky Linux and the Rocky Enterprise Software Foundation (RESF) does not make any express or implied warranties, including but not limited to the warranties of non-infringement of any third party intellectual property rights. RESF does not warrant that any pending trademark applications for trademarks of RESF will result in any granted trademark protection. RESF shall not be liable for any claims relating to user's activities falling within the scope of the permission and user hereby agrees to indemnify, defend and hold RESF and its contributors harmless against any such claim.

This content is licensed under under Attribution-Share Alike 4.0 International license unless otherwise noted.

Author: Al Bowles

Contributors: Lukas Magauer