Accueil Technologie
Utilisation de SSH pour l’authentification sans mot de passe de GitHub

Utilisation de SSH pour l’authentification sans mot de passe de GitHub

L’authentification avec GitHub implique généralement l’utilisation d’un jeton d’accès ou d’un mot de passe. Cependant, ces méthodes peuvent être peu pratiques et peu sûres, en particulier lorsque l’on accède à GitHub à partir de plusieurs appareils.



GitHub offre la possibilité d’utiliser Secure Shell (SSH) pour l’authentification. SSH est un protocole réseau sécurisé pour l’accès aux machines à distance. Cette fonctionnalité s’avère particulièrement précieuse dans les situations qui requièrent une automatisation ou un accès à distance fréquent.


Comprendre l’authentification SSH

L’authentification avec SSH implique l’utilisation de clés cryptographiques pour établir une connexion sécurisée (tunnel) entre un client (machine locale) et un serveur (GitHub).

Lors de l’utilisation de SSH pour GitHub, un utilisateur génère une paire de clés SSH – une clé publique et une clé privée. La clé publique est téléchargée sur le compte GitHub de l’utilisateur, tandis que la clé privée reste stockée en toute sécurité sur la machine locale de l’utilisateur.

image montrant la communication entre un agent ssh et un serveur github

Le processus peut être comparé au concept d’une serrure et d’une clé. La clé publique (serrure) est destinée à être partagée ouvertement et stockée en toute sécurité sur le serveur. Elle sert de contrepartie à la clé privée, permettant au serveur de vérifier l’identité de votre machine locale. Inversement, la clé privée (key) agit comme un identifiant unique stocké exclusivement sur votre machine locale, permettant une authentification réussie avec le serveur.

Lors de l’authentification avec GitHub, votre machine locale présente sa clé privée comme preuve d’identité. Le serveur vérifie si la clé publique associée à votre compte GitHub correspond à la clé privée donnée. Si les clés correspondent, le serveur accorde l’accès, en établissant une connexion chiffrée et sécurisée pour la communication.


Configurer SSH pour GitHub

Dans cette section, vous verrez comment configurer SSH pour l’authentification avec GitHub.

1. Générer une paire de clés SSH

La génération d’une paire de clés SSH est la première étape de l’utilisation de SSH pour l’authentification.

  1. Ouvrez un terminal ou une invite de commande.
  2. Exécutez la commande suivante pour générer une nouvelle paire de clés SSH :
      ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
  3. Vous serez invité à saisir un emplacement de fichier pour enregistrer la paire de clés. Appuyez sur Entrer pour accepter l’emplacement par défaut (~/.ssh/id_rsa) ou spécifier un emplacement personnalisé.
      > Generating public/private rsa key pair.
     > Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
  4. Ensuite, il vous sera demandé d’entrer une phrase de passe. Bien que facultatif, l’ajout d’une phrase de passe constitue un niveau de sécurité supplémentaire. Veillez à vous souvenir de votre phrase de passe.
      > Enter passphrase (empty for no passphrase): 
     > Enter same passphrase again:
  5. Après avoir généré la paire de clés, vous devriez voir deux fichiers dans l’emplacement spécifié. id_rsa (clé privée) et id_rsa.pub (clé publique).
      > Your identification has been saved in /home/vagrant/.ssh/id_rsa.
     > Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
  6. Une fois l’opération terminée, l’empreinte digitale et l’image aléatoire de la clé s’affichent.
  7. Enfin, vous aurez besoin du contenu de la clé publique pour l’ajouter à GitHub. Exécutez la commande suivante pour obtenir le contenu :
      cat ~/.ssh/id_rsa.pub

Assurez-vous de spécifier le chemin (~/.ssh/id_rsa.pub dans mon cas) que vous avez utilisé lors de la création des clés.

Copiez le contenu dans un emplacement sûr et temporaire pour une utilisation ultérieure.

2. Ajouter la clé publique à GitHub

Maintenant que vous avez généré une paire de clés SSH, vous devez ajouter la clé publique à votre compte GitHub.

  1. Connectez-vous à votre compte GitHub et allez dans votre compte Paramètres.
  2. Cliquez sur Clés SSH et GPG situé dans la barre latérale gauche.
    image montrant l'emplacement des clés ssh et gpg dans l'interface utilisateur
  3. Cliquer sur Nouvelle clé SSH.
  4. Donnez à votre clé SSH un Titre.
  5. Collez le contenu de la clé publique dans le fichier Clé champ.
    image montrant les champs titre et clé sur l'interface utilisateur
  6. Enfin, cliquez sur le bouton Ajouter une clé SSH pour enregistrer la clé SSH dans votre compte GitHub.
    image montrant la liste des clés actives

Vous avez exporté avec succès la clé publique vers votre compte GitHub.

3. Configuration d’un agent SSH

Un agent SSH est un programme qui aide à gérer les clés SSH et fournit un moyen sûr de les stocker et de les utiliser. Il agit comme un intermédiaire entre votre machine locale et le serveur distant lors de l’authentification SSH. Cela vous permet de gérer plusieurs clés SSH pour différents comptes GitHub.

  1. Assurez-vous que l’agent SSH est en cours d’exécution.
      $ eval "$(ssh-agent -s)"
     > Agent pid 2757
  2. Ajouter la clé privée à l’agent SSH.
      $ ssh-add ~/.ssh/id_rsa
     > Enter passphrase for /home/vagrant/.ssh/id_rsa:
     > Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Vous avez configuré avec succès un agent SSH pour gérer vos clés.

4. Test de la connexion SSH

Vous pouvez maintenant vérifier que votre connexion SSH est correctement configurée et que vous pouvez vous authentifier sur GitHub en utilisant SSH.

  • Exécutez la commande ci-dessous pour tester la connexion SSH à GitHub ;
       ssh -T git@github.com

    si tout se passe bien, vous verrez un avertissement concernant l’empreinte digitale. Confirmez l’empreinte et tapez oui pour continuer.

       > The authenticity of host 'github.com (140.92.130.4)' can't be established.
      > ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
      > Are you sure you want to continue connecting (yes/no)?
  • En tapant ouivous obtiendrez un résultat similaire à celui ci-dessous.
       > Warning: Permanently added 'github.com,140.92.130.4' (ECDSA) to the list of known hosts.
      > Hi princewillingoo! You've successfully authenticated, but GitHub does not provide shell access.

Ceci montre que l’authentification a réussi.


Gérer les dépôts avec SSH

Configurer SSH vous permet de gérer vos dépôts sans avoir à vous soucier des problèmes de mots de passe et de jetons d’accès.

Définition de l’URL distante

 git remote set-url origin git@github.com:<username>/<repository>.git

Clonage d’un dépôt

 git clone git@github.com:<username>/<repository>.git

Pousser des modifications vers un dépôt

 git push origin <branch>

Extraire des modifications d’un référentiel

 git pull origin <branch>

Avantages de SSH par rapport à l’authentification par mot de passe

L’utilisation de SSH pour l’authentification offre plusieurs avantages notables par rapport aux méthodes traditionnelles d’authentification par mot de passe. Il s’agit notamment de

  • L’authentification SSH élimine le besoin de mots de passe, ce qui réduit le risque de vol de données d’identification.
  • L’utilisation de clés cryptographiques rend l’authentification SSH plus résistante aux attaques par force brute que les mots de passe.
  • Si votre clé privée est compromise, vous pouvez la révoquer et la remplacer, ce qui rend la clé compromise inutile.

Pour cette raison, l’authentification SSH est généralement une meilleure option que l’authentification par mot de passe.


Meilleures pratiques et dépannage

Pour garantir une installation SSH fluide et sécurisée, il est nécessaire de suivre les meilleures pratiques et d’être conscient des problèmes courants qui peuvent survenir et des moyens de les résoudre.

  1. Définissez toujours une phrase de passe pour créer une couche de sécurité supplémentaire.
  2. Pratiquez une rotation fréquente des clés et des sauvegardes.
  3. Confirmez chaque étape pour éviter les erreurs de permission ou une configuration incorrecte de l’agent SSH.

En respectant ces bonnes pratiques, vous pouvez utiliser en toute confiance l’authentification SSH pour GitHub.


La polyvalence de SSH

SSH est largement utilisé dans d’autres domaines pour gérer à distance des serveurs, des microcontrôleurs et des périphériques réseau, car il permet un accès sécurisé à l’interface de ligne de commande (CLI), ce qui permet aux utilisateurs d’effectuer différentes tâches, de configurer des paramètres, de transférer des fichiers et de résoudre des problèmes.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Newsletter

inscrivez vous pour recevoir nos actualités

Actualités, astuces, bons plans et cadeaux !