Skip to main content

Génération d’une nouvelle clé SSH et ajout de celle-ci à ssh-agent

Une fois que vous avez vérifié les clés SSH existantes, vous pouvez générer une nouvelle clé SSH à utiliser pour l’authentification, puis l’ajouter à l’agent ssh.

Platform navigation

À propos des phrases secrètes de clé SSH

Vous pouvez accéder et écrire des données dans des référentiels sur GitHub à l’aide de SSH (protocole Secure Shell). Quand vous vous connectez via SSH, vous vous authentifiez avec un fichier de clé privée sur votre ordinateur local. Pour plus d’informations, consultez « À propos de SSH ».

Lorsque vous générez une clé SSH, vous pouvez ajouter une phrase secrète pour sécuriser davantage la clé. Chaque fois que vous utilisez la clé, vous devez entrer la phrase secrète. Si votre clé a une phrase secrète et que vous ne souhaitez pas entrer la phrase secrète chaque fois que vous utilisez la clé, vous pouvez ajouter votre clé à l’agent SSH. L’agent SSH gère vos clés SSH et mémorise votre phrase secrète.

Si vous n’avez pas encore de clé SSH, vous devez en générer une que vous utiliserez pour l’authentification. Si vous ne savez pas si vous disposez déjà d’une clé SSH, vous pouvez vérifier les clés existantes. Pour plus d’informations, consultez « Vérification des clés SSH existantes ».

Si vous souhaitez utiliser une clé de sécurité matérielle pour vous authentifier auprès de GitHub, vous devez générer une nouvelle clé SSH pour votre clé de sécurité matérielle. Vous devez connecter votre clé de sécurité matérielle à votre ordinateur quand vous vous authentifiez avec la paire de clés. Pour plus d’informations, consultez les notes de publication d’OpenSSH 8.2.

Génération d’une nouvelle clé SSH

Vous pouvez générer une nouvelle clé SSH sur votre ordinateur local. Après avoir généré la clé, vous pouvez ajouter la clé publique à votre compte sur GitHub.com afin d'activer l'authentification pour les opérations Git via SSH.

Remarque : GitHub a amélioré la sécurité en supprimant d’anciens types de clés non sécurisés le 15 mars 2022.

Depuis cette date, les clés DSA (ssh-dss) ne sont plus prises en charge. Vous ne pouvez pas ajouter de nouvelles clés DSA à votre compte personnel sur GitHub.

Les clés RSA (ssh-rsa) avec une date valid_after antérieure au 2 novembre 2021 peuvent continuer à utiliser n’importe quel algorithme de signature. Les clés RSA générées après cette date doivent utiliser un algorithme de signature SHA-2. Il se peut que certains clients plus anciens nécessitent un mise à niveau pour utiliser des signatures SHA-2.

  1. Ouvrez TerminalTerminalGit Bash.

  2. Collez le texte ci-dessous, en remplaçant l’e-mail utilisé dans l’exemple par votre adresse e-mail GitHub.

    ssh-keygen -t ed25519 -C "your_email@example.com"
    

    Remarque : Si vous utilisez un système hérité qui ne prend pas en charge l’algorithme Ed25519, utilisez :

     ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    Cette opération crée une clé SSH, qui utilise l’e-mail fourni comme étiquette.

    > Generating public/private ALGORITHM key pair.
    

    Quand vous êtes invité à entrer un fichier où enregistrer la clé, vous pouvez appuyer sur Entrée pour accepter l’emplacement du fichier par défaut. Notez que si vous avez déjà créé des clés SSH, ssh-keygen peut vous demander de réécrire une autre clé, auquel cas nous vous recommandons de créer une clé SSH avec un nom personnalisé. Pour ce faire, tapez l’emplacement du fichier par défaut et remplacez id_ALGORITHM par le nom personnalisé de votre clé.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
    
    > Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
    
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ALGORITHM):[Press enter]
    
  3. À l’invite, tapez une phrase secrète sécurisée. Pour plus d’informations, consultez « Utilisation des phrases secrètes de clé SSH ».

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    

Ajout de votre clé SSH à ssh-agent

Avant d’ajouter une nouvelle clé SSH à ssh-agent pour gérer vos clés, vous devez vérifier les clés SSH existantes et générer une nouvelle clé SSH. Quand vous ajoutez votre clé SSH à l’agent, utilisez la commande macOS ssh-add par défaut et non une application installée par macports, homebrew ou une autre source externe.

  1. Démarrez l’agent SSH en arrière-plan.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    Selon votre environnement, vous serez peut-être amené à utiliser une commande différente. Par exemple, vous devrez peut-être utiliser l’accès racine en exécutant sudo -s -H avant de démarrer l’agent SSH, ou exec ssh-agent bash ou exec ssh-agent zsh pour exécuter l’agent SSH.

  2. Si vous utilisez macOS Sierra version 10.12.2 ou ultérieure, vous devez modifier votre fichier ~/.ssh/configpour charger automatiquement les clés dans ssh-agent et stocker les phrases secrètes dans votre trousseau.

    • Tout d’abord, vérifiez si votre fichier ~/.ssh/config existe à l’emplacement par défaut.

      $ open ~/.ssh/config
      > The file /Users/YOU/.ssh/config does not exist.
      
    • Si le fichier n’existe pas, créez-le.

      touch ~/.ssh/config
      
    • Ouvrez votre fichier ~/.ssh/config, puis modifiez-le pour qu’il contienne les lignes suivantes. Si votre fichier de clé SSH a un nom ou un chemin différent de ceux de l’exemple de code, modifiez le nom de fichier ou le chemin pour qu’ils correspondent à votre configuration actuelle.

      Text
      Host github.com
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Remarques :

      • Si vous avez choisi de ne pas ajouter de phrase secrète à votre clé, vous devez omettre la ligne UseKeychain.

      • Si vous voyez une erreur Bad configuration option: usekeychain, ajoutez une ligne supplémentaire à la section Host *.github.com de la ou des configurations.

        Text
        Host github.com
          IgnoreUnknown UseKeychain
        
  3. Ajoutez votre clé privée SSH à ssh-agent et stockez votre phrase secrète dans le trousseau. Si vous avez créé votre clé avec un nom différent ou si vous ajoutez une clé existante qui a un nom différent, remplacez id_ed25519 dans la commande par le nom de votre fichier de clé privée.

    ssh-add --apple-use-keychain ~/.ssh/id_ed25519
    

    Remarque : L’option --apple-use-keychain stocke la phrase secrète dans votre trousseau quand vous ajoutez une clé SSH à ssh-agent. Si vous avez choisi de ne pas ajouter de phrase secrète à votre clé, exécutez la commande sans l’option --apple-use-keychain.

    L’option --apple-use-keychain se trouve dans la version standard de ssh-add d’Apple. Dans les versions macOS antérieures à Monterey (12.0), les indicateurs --apple-use-keychain et --apple-load-keychain utilisaient respectivement la syntaxe -K et -A.

    Si vous n’avez pas la version standard de ssh-add d’Apple installée, vous pouvez recevoir une erreur. Pour plus d’informations, consultez « Erreur : ssh-add : option illégale -- apple-use-keychain ».

    Si vous continuez à être invité à entrer votre phrase secrète, vous devrez peut-être ajouter la commande à votre fichier ~/.zshrc (ou à votre fichier ~/.bashrc pour bash).

  4. Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».

Si vous avez installé GitHub Desktop, vous pouvez l’utiliser pour cloner des référentiels, sans utiliser de clés SSH.

  1. Dans une nouvelle fenêtre de terminal des _privilèges élevés d’administrateur_PowerShell, vérifiez que l’agent ssh est en cours d’exécution. Vous pouvez utiliser les instructions de la section « Lancement automatique de ssh-agent » dans « Utilisation des phrases secrètes de clé SSH » ou le démarrer manuellement :

    # start the ssh-agent in the background
    Get-Service -Name ssh-agent | Set-Service -StartupType Manual
    Start-Service ssh-agent
    
  2. Dans une fenêtre de terminal sans autorisations élevées, ajoutez votre clé privée SSH à l’agent SSH. Si vous avez créé votre clé avec un nom différent ou si vous ajoutez une clé existante qui a un nom différent, remplacez id_ed25519 dans la commande par le nom de votre fichier de clé privée.

    ssh-add c:/Users/YOU/.ssh/id_ed25519
    
  3. Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».

  1. Démarrez l’agent SSH en arrière-plan.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
    

    Selon votre environnement, vous serez peut-être amené à utiliser une commande différente. Par exemple, vous devrez peut-être utiliser l’accès racine en exécutant sudo -s -H avant de démarrer l’agent SSH, ou exec ssh-agent bash ou exec ssh-agent zsh pour exécuter l’agent SSH.

  2. Ajoutez votre clé privée SSH à ssh-agent.

    Si vous avez créé votre clé avec un nom différent ou si vous ajoutez une clé existante qui a un nom différent, remplacez id_ed25519 dans la commande par le nom de votre fichier de clé privée.

    ssh-add ~/.ssh/id_ed25519
    
  3. Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».

Génération d’une nouvelle clé SSH pour une clé de sécurité matérielle

Si vous utilisez macOS ou Linux, vous devrez peut-être mettre à jour votre client SSH ou installer un nouveau client SSH avant de générer une clé SSH. Pour plus d’informations, consultez « Erreur : Type de clé inconnu ».

  1. Insérez votre clé de sécurité matérielle dans votre ordinateur.

  2. Ouvrez TerminalTerminalGit Bash.

  3. Collez le texte ci-dessous en remplaçant l’adresse e-mail utilisée dans l’exemple par celle associée à votre compte GitHub.

    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    
    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    
    ssh-keygen -t ed25519-sk -C "your_email@example.com"
    

    Remarque : Si la commande échoue et que l’erreur invalid format ou feature not supported, se produit, vous utilisez peut-être une clé de sécurité matérielle qui ne prend pas en charge l’algorithme Ed25519. Entrez plutôt la commande suivante.

     ssh-keygen -t ecdsa-sk -C "your_email@example.com"
    
  4. Quand vous y êtes invité, appuyez sur le bouton de votre clé de sécurité matérielle.

  5. Quand vous êtes invité à entrer un fichier dans lequel enregistrer la clé, appuyez sur Entrée pour accepter l’emplacement du fichier par défaut.

    > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
    
    > Enter a file in which to save the key (c:\Users\YOU\.ssh\id_ed25519_sk):[Press enter]
    
    > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
    
  6. Quand vous êtes invité à taper une phrase secrète, appuyez sur Entrée.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
    
  7. Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».