Skip to main content

Informer Git de l’utilisation de votre clé de signature

Pour signer les commits localement, vous devez informer Git qu’il y a une clé GPG ou X.509 que vous voulez utiliser.

Informer Git de l’utilisation de votre clé GPG

Si vous utilisez une clé GPG qui correspond à votre identité de commiteur et à votre adresse e-mail vérifiée associées à votre compte sur GitHub AE, vous pouvez commencer à signer des commits et des étiquettes.

Si vous n’avez pas de clé GPG qui correspond à votre identité de commiteur, vous devez associer un e-mail à une clé existante. Pour plus d’informations, consultez « Association d’un e-mail à votre clé GPG ».

Si vous avez plusieurs clés GPG, vous devez indiquer à Git laquelle utiliser.

  1. Ouvrez TerminalTerminalGit Bash. 1. Si vous avez précédemment configuré Git pour utiliser un autre format de clé lors de la signature avec --gpg-sign, annulez cette configuration afin que le format par défaut openpgp soit utilisé.

    $ git config --global --unset gpg.format
    ``` 1. Utilisez la commande `gpg --list-secret-keys --keyid-format=long` pour répertorier la forme longue des clés GPG pour lesquelles vous disposez à la fois d’une clé publique et d’une clé privée. Une clé privée est requise pour la signature des validations ou des étiquettes.
    
    ```shell{:copy}
    $ gpg --list-secret-keys --keyid-format=long
    

    Remarque : pour afficher la liste des clés existantes sur certaines installations GPG exécutées sous Linux, il peut être nécessaire d’utiliser gpg2 --list-keys --keyid-format LONG. Dans ce cas, vous devez également configurer Git pour qu’il utilise gpg2 en exécutant git config --global gpg.program gpg2.

    1. Dans la liste des clés GPG, copiez la forme longue de l’ID de clé GPG à utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` : ```shell{:copy} $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. Pour définir votre clé de signature primaire GPG dans Git, collez le texte ci-dessous en spécifiant l’ID de clé primaire GPG que vous souhaitez utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` :
    $ git config --global user.signingkey 3AA5C34371567BD2
    Sinon, lors de la définition d’une sous-clé, incluez le suffixe `!`. Dans cet exemple, l’ID de sous-clé GPG est `4BB6D45482678BE3` :
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. Si vous le souhaitez, pour configurer Git afin de signer toutes les validations par défaut, entrez la commande suivante :
    $ git config --global commit.gpgsign true
    

    Pour plus d’informations, consultez « Signature des validations ».

  2. Si vous n’utilisez pas la suite GPG, exécutez la commande suivante dans l’interpréteur de commandes zsh pour ajouter la clé GPG à votre fichier .zshrc, s’il existe, ou votre fichier .zprofile :

    $ if [ -r ~/.zshrc ]; then echo 'export GPG_TTY=$(tty)' >> ~/.zshrc; \
      else echo 'export GPG_TTY=$(tty)' >> ~/.zprofile; fi

    Vous utilisez l’interpréteur de commandes bash, vous pouvez également exécuter cette commande :

    $ if [ -r ~/.bash_profile ]; then echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile; \
      else echo 'export GPG_TTY=$(tty)' >> ~/.profile; fi
  3. Si vous le souhaitez, pour être invité à entrer un code PIN ou une phrase secrète quand c’est nécessaire, installez pinentry-mac. Par exemple, avec Homebrew :

    $ brew install pinentry-mac
    $ echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
    $ killall gpg-agent

Informer Git de l’utilisation de votre clé GPG

Si vous utilisez une clé GPG qui correspond à votre identité de commiteur et à votre adresse e-mail vérifiée associées à votre compte sur GitHub AE, vous pouvez commencer à signer des commits et des étiquettes.

Si vous n’avez pas de clé GPG qui correspond à votre identité de commiteur, vous devez associer un e-mail à une clé existante. Pour plus d’informations, consultez « Association d’un e-mail à votre clé GPG ».

Si vous avez plusieurs clés GPG, vous devez indiquer à Git laquelle utiliser.

  1. Ouvrez TerminalTerminalGit Bash. 1. Si vous avez précédemment configuré Git pour utiliser un autre format de clé lors de la signature avec --gpg-sign, annulez cette configuration afin que le format par défaut openpgp soit utilisé.

    $ git config --global --unset gpg.format
    ``` 1. Utilisez la commande `gpg --list-secret-keys --keyid-format=long` pour répertorier la forme longue des clés GPG pour lesquelles vous disposez à la fois d’une clé publique et d’une clé privée. Une clé privée est requise pour la signature des validations ou des étiquettes.
    
    ```shell{:copy}
    $ gpg --list-secret-keys --keyid-format=long
    

    Remarque : pour afficher la liste des clés existantes sur certaines installations GPG exécutées sous Linux, il peut être nécessaire d’utiliser gpg2 --list-keys --keyid-format LONG. Dans ce cas, vous devez également configurer Git pour qu’il utilise gpg2 en exécutant git config --global gpg.program gpg2.

    1. Dans la liste des clés GPG, copiez la forme longue de l’ID de clé GPG à utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` : ```shell{:copy} $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. Pour définir votre clé de signature primaire GPG dans Git, collez le texte ci-dessous en spécifiant l’ID de clé primaire GPG que vous souhaitez utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` :
    $ git config --global user.signingkey 3AA5C34371567BD2
    Sinon, lors de la définition d’une sous-clé, incluez le suffixe `!`. Dans cet exemple, l’ID de sous-clé GPG est `4BB6D45482678BE3` :
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. Si vous le souhaitez, pour configurer Git afin de signer toutes les validations par défaut, entrez la commande suivante :
    $ git config --global commit.gpgsign true
    

    Pour plus d’informations, consultez « Signature des validations ».

Informer Git de l’utilisation de votre clé GPG

Si vous utilisez une clé GPG qui correspond à votre identité de commiteur et à votre adresse e-mail vérifiée associées à votre compte sur GitHub AE, vous pouvez commencer à signer des commits et des étiquettes.

Si vous n’avez pas de clé GPG qui correspond à votre identité de commiteur, vous devez associer un e-mail à une clé existante. Pour plus d’informations, consultez « Association d’un e-mail à votre clé GPG ».

Si vous avez plusieurs clés GPG, vous devez indiquer à Git laquelle utiliser.

  1. Ouvrez TerminalTerminalGit Bash. 1. Si vous avez précédemment configuré Git pour utiliser un autre format de clé lors de la signature avec --gpg-sign, annulez cette configuration afin que le format par défaut openpgp soit utilisé.

    $ git config --global --unset gpg.format
    ``` 1. Utilisez la commande `gpg --list-secret-keys --keyid-format=long` pour répertorier la forme longue des clés GPG pour lesquelles vous disposez à la fois d’une clé publique et d’une clé privée. Une clé privée est requise pour la signature des validations ou des étiquettes.
    
    ```shell{:copy}
    $ gpg --list-secret-keys --keyid-format=long
    

    Remarque : pour afficher la liste des clés existantes sur certaines installations GPG exécutées sous Linux, il peut être nécessaire d’utiliser gpg2 --list-keys --keyid-format LONG. Dans ce cas, vous devez également configurer Git pour qu’il utilise gpg2 en exécutant git config --global gpg.program gpg2.

    1. Dans la liste des clés GPG, copiez la forme longue de l’ID de clé GPG à utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` : ```shell{:copy} $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. Pour définir votre clé de signature primaire GPG dans Git, collez le texte ci-dessous en spécifiant l’ID de clé primaire GPG que vous souhaitez utiliser. Dans cet exemple, l’ID de clé GPG est `3AA5C34371567BD2` :
    $ git config --global user.signingkey 3AA5C34371567BD2
    Sinon, lors de la définition d’une sous-clé, incluez le suffixe `!`. Dans cet exemple, l’ID de sous-clé GPG est `4BB6D45482678BE3` :
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. Si vous le souhaitez, pour configurer Git afin de signer toutes les validations par défaut, entrez la commande suivante :
    $ git config --global commit.gpgsign true
    

    Pour plus d’informations, consultez « Signature des validations ».

  2. Pour ajouter votre clé GPG à votre fichier de démarrage .bashrc, exécutez la commande suivante :

    $ [ -f ~/.bashrc ] && echo 'export GPG_TTY=$(tty)' >> ~/.bashrc
    

Informer Git concernant votre clé X.509

Vous pouvez utiliser smimesign pour signer des commits et des étiquettes à l’aide de S/MIME.

Remarque : La vérification de signature S/MIME est disponible dans Git 2.19 ou version ultérieure. Pour mettre à jour votre version de Git, consultez le site web Git.

  1. Installez smimesign.
  2. Ouvrez TerminalTerminalGit Bash.
  3. Configurez Git afin d’utiliser S/MIME pour signer des validations et des balises. Dans Git 2.19 ou version ultérieure, utilisez les commandes git config gpg.x509.program et git config gpg.format :
  • Pour utiliser S/MIME pour signer pour tous les dépôts :
    $ git config --global gpg.x509.program smimesign
    $ git config --global gpg.format x509
  • Pour utiliser S/MIME pour signer pour un seul dépôt :
    $ cd PATH-TO-REPOSITORY
    $ git config --local gpg.x509.program smimesign
    $ git config --local gpg.format x509
    Dans Git 2.18 ou version antérieure, utilisez la commande git config gpg.program :
  • Pour utiliser S/MIME pour signer pour tous les dépôts :
    $ git config --global gpg.program smimesign
  • Pour utiliser S/MIME pour signer pour un seul dépôt :
    $ cd  PATH-TO-REPOSITORY
    $ git config --local gpg.program smimesign
    Si vous utilisez une clé X.509 correspondant à votre identité de valideur, vous pouvez commencer à signer des validations et des étiquettes.
  1. Si vous n’utilisez pas de clé X.509 correspondant à votre identité de valideur, répertoriez les clés X.509 pour lesquelles vous disposez ’un certificat et d’une clé privée à l’aide de la commande smimesign --list-keys.
    $ smimesign --list-keys
  2. Dans la liste des clés X.509, copiez l’ID de certificat de la clé X.509 que vous souhaitez utiliser. Dans cet exemple, l’ID de certificat est 0ff455a2708394633e4bb2f88002e3cd80cbd76f :
    $ smimesign --list-keys
                 ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f
                S/N: a2dfa7e8c9c4d1616f1009c988bb70f
          Algorithm: SHA256-RSA
           Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC
             Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US
            Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US
             Emails: octocat@github.com
  3. Pour définir votre clé de signature X.509 dans Git, collez le texte ci-dessous, en remplaçant l’ID de certificat par celui que vous avez copié précédemment.
  • Pour utiliser votre clé X.509 pour signer pour tous les dépôts :
    $ git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
  • Pour utiliser votre clé X.509 pour signer pour un seul dépôt :
    $ cd  PATH-TO-REPOSITORY
    $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f

Lectures supplémentaires