À 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 Enterprise Server, 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 votre instance GitHub Enterprise Server afin d'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 un accès SSH administratif à l’instance. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
-
Ouvrez TerminalTerminalGit Bash.
-
Collez le texte ci-dessous, en remplaçant l’e-mail utilisé dans l’exemple par votre adresse e-mail GitHub Enterprise Server.
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 :
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]
-
À 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.
-
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, ouexec ssh-agent bash
ouexec ssh-agent zsh
pour exécuter l’agent SSH. -
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.$ 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 HOSTNAME AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519
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 sectionHost *.HOSTNAME
de la ou des configurations.
Text Host HOSTNAME IgnoreUnknown UseKeychain
Host HOSTNAME IgnoreUnknown UseKeychain
- Si vous avez choisi de ne pas ajouter de phrase secrète à votre clé, vous devez omettre la ligne
-
-
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 dessh-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). -
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.
-
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
-
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
-
Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».
-
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, ouexec ssh-agent bash
ouexec ssh-agent zsh
pour exécuter l’agent SSH. -
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
-
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 ».
-
Insérez votre clé de sécurité matérielle dans votre ordinateur.
-
Ouvrez TerminalTerminalGit Bash.
-
Collez le texte ci-dessous en remplaçant l’adresse e-mail utilisée dans l’exemple par celle associée à votre compte GitHub Enterprise Server.
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"
Note
Si la commande échoue et que l’erreur
invalid format
oufeature 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"
-
Quand vous y êtes invité, appuyez sur le bouton de votre clé de sécurité matérielle.
-
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]
-
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]
-
Ajoutez la clé SSH publique à votre compte sur GitHub. Pour plus d’informations, consultez « Ajout d’une nouvelle clé SSH à votre compte GitHub ».