DEV Community

Cover image for Configurer l'authentification SSH pour Git
Benoît Garçon for La Formule Nuagique

Posted on • Originally published at formulenuagique.com

Configurer l'authentification SSH pour Git

SSH (Secure Shell) est un protocole utilisé pour se connecter de manière sécurisée à des systèmes distants. Il est souvent utilisé pour la ligne de commande à distance, mais il peut également être utilisé pour transférer des fichiers, créer des tunnels sécurisés, etc.

Un usage courant de SSH est la connexion aux dépôts Git. En utilisant l'authentification SSH pour vos dépôts Git, vous pouvez éviter de saisir votre nom d'utilisateur et votre mot de passe chaque fois que vous poussez ou tirez des modifications. Dans cet article, nous allons vous montrer comment configurer l'authentification SSH pour Git.

Prérequis

Avant de commencer, vous aurez besoin de :

  • Un client Git installé sur votre machine locale
  • Un compte sur un service d'hébergement Git, tel que GitHub, GitLab ou Bitbucket

Génération d'une clé SSH

Pour utiliser l'authentification SSH, vous devrez générer une clé SSH sur votre machine locale. Cette clé est une chaîne unique de caractères qui vous identifie auprès du service d'hébergement Git.

Pour générer une clé SSH dans Git, ouvrez une fenêtre de terminal et entrez la commande suivante :

ssh-keygen -t rsa -b 8192 -C "votre_email@exemple.com"
Enter fullscreen mode Exit fullscreen mode

Remplacez votre_email@exemple.com par votre adresse e-mail. Cela générera une paire de clés RSA avec une clé privée de 4096 bits et une clé publique correspondante.

Vous serez invité à entrer un fichier dans lequel enregistrer la clé. Par défaut, la clé est enregistrée dans ~/.ssh/id_rsa, mais vous pouvez choisir un emplacement différent si vous préférez.

Ensuite, vous serez invité à entrer une phrase de passe. Cette phrase de passe est utilisée pour sécuriser votre clé privée et garantir que seul vous pouvez l'utiliser. Assurez-vous de choisir une phrase de passe forte et unique.

Une fois la clé générée, vous pouvez afficher la clé publique en entrant la commande suivante :

cat ~/.ssh/id_rsa.pub
Enter fullscreen mode Exit fullscreen mode

Cela affichera la clé publique, qui ressemblera à ceci :

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4GK8RdRw+...
Enter fullscreen mode Exit fullscreen mode

Ajout de la clé publique à votre service d'hébergement Git

Maintenant que vous avez généré une clé SSH, vous devez ajouter la clé publique à votre service d'hébergement Git. Cela permettra au service de vous reconnaître lorsque vous vous connecterez via SSH.

Pour ajouter la clé publique à votre service d'hébergement Git, suivez ces étapes :

  1. Connectez-vous à votre compte sur le service d'hébergement Git.
  2. Accédez à la page de paramètres des clés SSH.
    1. Sur GitHub, allez dans Settings > SSH and GPG keys.
    2. Sur GitLab, allez dans Settings > SSH Keys.
    3. Sur Bitbucket, allez dans Manage account > SSH keys.
  3. Cliquez sur le bouton Add SSH key.
  4. Entrez un libellé pour la clé (par exemple, Mon ordinateur portable).
  5. Collez la clé publique dans le champ Key. Vous pouvez utiliser la commande cat précédemment mentionnée pour afficher la clé publique et la copier dans votre presse-papiers.
  6. Cliquez sur le bouton Add key.

Test de la connexion SSH

Maintenant que vous avez ajouté votre clé publique à votre service d'hébergement Git, vous pouvez tester la connexion SSH.

Pour tester la connexion, entrez la commande suivante dans un terminal :

ssh -T git@<hostname>
Enter fullscreen mode Exit fullscreen mode

Remplacez <hostname> par le nom d'hôte de votre service d'hébergement Git (par exemple, github.com pour GitHub).

Si la connexion est réussie, vous verrez un message similaire à celui-ci :

Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Enter fullscreen mode Exit fullscreen mode

Si la connexion n'est pas réussie, vous pourriez voir un message d'erreur ou être invité à entrer votre nom d'utilisateur et votre mot de passe. Dans ce cas, vérifiez que vous avez correctement ajouté votre clé publique à votre service d'hébergement Git et que votre clé privée est située au bon emplacement de fichier.

Configuration de Git pour utiliser SSH

Maintenant que vous avez configuré l'authentification SSH, vous devez configurer Git pour l'utiliser.

Pour configurer Git pour utiliser SSH, ouvrez une fenêtre de terminal et entrez la commande suivante :

git config --global url."ssh://git@<hostname>/".insteadOf "https://<hostname>/"
Enter fullscreen mode Exit fullscreen mode

Remplacez <hostname> par le nom d'hôte de votre service d'hébergement Git (par exemple, github.com pour GitHub). Cette commande indique à Git d'utiliser SSH pour toutes les URL de dépôt qui correspondent au modèle spécifié.

Utilisation de SSH avec Git

Maintenant que vous avez configuré Git pour utiliser SSH, vous pouvez utiliser SSH pour cloner, pousser et tirer vos dépôts Git.

Pour cloner un dépôt en utilisant SSH, utilisez la commande git clone et spécifiez l'URL SSH du dépôt :

git clone ssh://git@<hostname>/<username>/<repository>.git
Enter fullscreen mode Exit fullscreen mode

Remplacez <hostname> par le nom d'hôte de votre service d'hébergement Git, <username> par votre nom d'utilisateur sur le service et <repository> par le nom du dépôt que vous souhaitez cloner.

Pour pousser des modifications vers un dépôt en utilisant SSH, utilisez la commande git push comme d'habitude. Git utilisera automatiquement la connexion SSH.

Pour tirer des modifications à partir d'un dépôt en utilisant SSH, utilisez la commande git pull comme d'habitude. Git utilisera également automatiquement la connexion SSH.

Conclusion

Dans cet article, nous vous avons montré comment configurer l'authentification SSH pour Git. En utilisant SSH, vous pouvez éviter de saisir votre nom d'utilisateur et votre mot de passe chaque fois que vous poussez ou tirez des modifications de vos dépôts Git. La configuration de l'authentification SSH est simple et offre une couche supplémentaire de sécurité pour vos flux de travail Git.

Top comments (0)