Skip to main content

GitHub AE est actuellement en version limitée.

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.

Platform navigation

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.

  2. 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
    
  3. 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
    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.

  4. 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
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. 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!
    
  6. 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 de commits ».

  7. 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 -e '\nexport GPG_TTY=$(tty)' >> ~/.zshrc; \
      else echo -e '\nexport 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 -e '\nexport GPG_TTY=$(tty)' >> ~/.bash_profile; \
      else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.profile; fi
    
  8. 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 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.

  2. 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
    
  3. 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
    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.

  4. 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
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. 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!
    
  6. 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 de commits ».

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.

  2. 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
    
  3. 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
    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.

  4. 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
    
    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot <hubot@example.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. 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!
    
  6. 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 de commits ».

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

    [ -f ~/.bashrc ] && echo -e '\nexport 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.

  4. 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
    
  5. 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
    
  6. 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