Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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 your GitHub Enterprise Server instance, 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

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 your GitHub Enterprise Server instance, 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 ».

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 your GitHub Enterprise Server instance, 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