# 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.

## À 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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/about-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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys) ».

Si vous souhaitez utiliser une clé de sécurité matérielle pour vous authentifier 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](https://www.openssh.com/txt/release-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 votre instance GitHub Enterprise Server pour activer l’authentification pour les opérations Git via SSH.

Si vous êtes administrateur de site pour votre instance GitHub Enterprise Server, vous pouvez utiliser la même clé pour vous accorder l’accès SSH administratif à l’instance. Pour plus d’informations, consultez « [Accès à l’interpréteur de commandes d’administration (SSH)](/fr/enterprise-server@3.19/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh) ».

1. Ouvrez <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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

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

   > \[!NOTE]
   > Si vous utilisez un système hérité qui ne prend pas en charge l’algorithme Ed25519, utilisez :
   >
   > ```shell
   > 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.

   ```shell
   > 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é.

   <div class="ghd-tool mac">

   ```shell
   > Enter a file in which to save the key (/Users/YOU/.ssh/id_ALGORITHM): [Press enter]
   ```

   </div>

   <div class="ghd-tool windows">

   ```powershell
   > Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM):[Press enter]
   ```

   </div>

   <div class="ghd-tool linux">

   ```shell
   > Enter a file in which to save the key (/home/YOU/.ssh/id_ALGORITHM):[Press enter]
   ```

   </div>

3. À l’invite, tapez une phrase secrète sécurisée. Pour plus d’informations, consultez « [Utilisation des mots de passe de clé SSH](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases) ».

   ```shell
   > 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. <span class="platform-mac">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](https://www.macports.org/), [homebrew](https://brew.sh/) ou une autre source externe.</span>

<div class="ghd-tool mac">

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

   ```shell
   $ 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/config`pour 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.

     ```shell
     $ open ~/.ssh/config
     > The file /Users/YOU/.ssh/config does not exist.
     ```

   * Si le fichier n’existe pas, créez-le.

     ```shell
     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 copy
     Host HOSTNAME
       AddKeysToAgent yes
       UseKeychain yes
       IdentityFile ~/.ssh/id_ed25519
     ```

     > \[!NOTE]
     >
     > * 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 *.HOSTNAME` de la ou des configurations.
     >
     > ```text copy
     > Host HOSTNAME
     >   IgnoreUnknown UseKeychain
     > ```

3. Ajoutez votre clé privée SSH à l'agent SSH 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.

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

   > \[!NOTE]
   > 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](/fr/enterprise-server@3.19/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) ».

</div>

<div class="ghd-tool windows">

Si vous avez installé [GitHub Desktop](https://desktop.github.com/), vous pouvez l’utiliser pour cloner des référentiels, sans utiliser de clés SSH.

1. Dans une nouvelle fenêtre PowerShell avec élévation des *privilèges d’administrateur*, 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 mots de passe de clé SSH](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases) ou le démarrer manuellement :

   ```powershell
   # 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.

   ```powershell
   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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) ».

> ### Résolution des conflits d’agent SSH dans Windows
>
> Dans Windows environnements, l’implémentation d’OpenSSH native Windows et celle incluse avec [Git pour Windows](https://gitforwindows.org/) (basée sur MSYS2/Bash) peut coexister.
>
> Si vous configurez et enregistrez vos phrases secrètes dans l’agent Windows à l’aide de PowerShell, Git peut toujours vous inviter à entrer votre phrase secrète pendant les opérations telles que `git push`. Cela peut se produire lorsque Git pour Windows utilise son `ssh.exe` groupé (à partir de MSYS2) au lieu du client OpenSSH du système Windows et ne peut donc pas communiquer avec le service Windows `ssh-agent`.
>
> Pour vous assurer que Git utilise l’agent où vous avez stocké vos informations d’identification, forcez Git à utiliser le fichier binaire SSH du système en exécutant :
>
> ```powershell
> git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
> ```
>
> Vous devrez peut-être spécifier le `ssh-keygen` fichier Git binaire à utiliser pour éviter les conflits avec le fichier binaire groupé avec Git pour Windows. Pour définir le fichier binaire utilisé, exécutez la commande suivante :
>
> ```powershell
> git config --global gpg.ssh.program "C:/Windows/System32/OpenSSH/ssh-keygen.exe"
> ```
>
> Vous pouvez également réinstaller Git pour Windows et sélectionner l’option **Utiliser OpenSSH externe** pendant le processus d’installation.

</div>

<div class="ghd-tool linux">

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

   ```shell
   $ 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.

   ```shell
   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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) ».

</div>

## 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](/fr/enterprise-server@3.19/authentication/troubleshooting-ssh/error-unknown-key-type) ».

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

2. Ouvrez <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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

   <div class="ghd-tool mac">

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

   </div>

   <div class="ghd-tool windows">

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

   </div>

   <div class="ghd-tool linux">

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

   </div>

   > \[!NOTE]
   > 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.
   >
   > ```shell
   > 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.

   <div class="ghd-tool mac">

   ```shell
   > Enter a file in which to save the key (/Users/YOU/.ssh/id_ed25519_sk): [Press enter]
   ```

   </div>

   <div class="ghd-tool windows">

   ```shell
   > Enter a file in which to save the key (c:\Users\YOU\.ssh\id_ed25519_sk):[Press enter]
   ```

   </div>

   <div class="ghd-tool linux">

   ```shell
   > Enter a file in which to save the key (/home/YOU/.ssh/id_ed25519_sk):[Press enter]
   ```

   </div>

6. Quand vous êtes invité à taper une phrase secrète, appuyez sur **Entrée**.

   ```shell
   > 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](/fr/enterprise-server@3.19/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) ».

## Lectures complémentaires

* [Référence des types d'identifiants GitHub](/fr/enterprise-server@3.19/organizations/managing-programmatic-access-to-your-organization/github-credential-types)