Pour nous, développeurs, la répétition des mêmes tâches peut vite devenir fastidieuse. N’est-ce pas le cas ?
L’une de ces tâches répétitives concerne l’interaction avec les dépôts privés sur GitHub. Si vous êtes ici, c’est probablement parce que vous savez de quoi il s’agit et que vous cherchez une solution. Ne cherchez plus, cet article va vous éclairer.
Nous allons explorer différentes manières d’accéder à vos dépôts GitHub privés sans avoir à saisir constamment votre mot de passe. Alors, commençons sans plus attendre.
Il existe principalement deux méthodes pour accéder à un dépôt GitHub : HTTPS et SSH. La plupart d’entre nous utilisent HTTPS par défaut. Cependant, vous allez découvrir que cette méthode n’est pas la plus efficace pour les dépôts privés.
L’accès à un dépôt implique des opérations telles que le clonage, le push, le pull, et toutes les actions liées à la mise à jour de votre dépôt distant.
L’accès aux dépôts publics ne pose aucun problème, mais l’authentification est indispensable pour les dépôts privés. Il existe plusieurs façons de s’authentifier, et nous allons les explorer en commençant par la plus familière…
Authentification HTTPS : la méthode traditionnelle
Si vous utilisez déjà HTTPS, vous connaissez probablement les inconvénients. Voyons rapidement comment accéder à un dépôt privé en utilisant cette méthode.
- Commencez par copier l’URL de votre dépôt privé.
Dépôt privé GitHub
- Ouvrez votre terminal ou l’invite de commandes.
- Utilisez la commande `git clone URL_de_votre_depot` pour cloner le dépôt.
- N’oubliez pas de remplacer `URL_de_votre_depot` par l’URL de votre dépôt privé.
- Le système va vous demander de vous authentifier. Saisissez alors vos informations d’identification GitHub.
- Tout d’abord, entrez votre nom d’utilisateur GitHub, puis appuyez sur Entrée.
Authentification : Nom d’utilisateur
- Ensuite, le système vous demandera votre mot de passe. Saisissez votre mot de passe GitHub et validez avec la touche Entrée.
Voilà, votre dépôt privé est cloné en utilisant HTTPS. Maintenant, effectuez une modification dans le dépôt, validez-la, et tentez de la pousser vers le dépôt distant.
Que remarquez-vous ?
Le système vous demande à nouveau de vous authentifier.
N’est-ce pas frustrant de devoir saisir vos informations d’identification à chaque interaction avec un dépôt privé ?
Bien sûr que si !
Entrer vos identifiants GitHub à chaque opération est une perte de temps et ralentit votre workflow. Heureusement, il existe d’autres méthodes pour éviter ce désagrément. La plus efficace est l’utilisation de SSH, mais il y en a d’autres que nous allons explorer.
Configuration du fichier .git
Les informations relatives à vos dépôts sont stockées dans le dossier `.git`, un répertoire caché qui contient un fichier de configuration où vous pouvez modifier certains paramètres. Bien que possible, cette méthode n’est généralement pas recommandée.
Une méthode consiste à inclure votre nom d’utilisateur et mot de passe directement dans l’URL du dépôt au moment du clonage, comme ceci :
git clone https://<strong>utilisateur:motdepasse</strong>@github.com/<strong>utilisateur</strong>/<strong>nom_du_depot</strong>.git
Remplacez `utilisateur`, `motdepasse` et `nom_du_depot` par vos propres informations. En incluant ces détails dans l’URL, le système ne vous demandera plus de vous authentifier.
Nous allons maintenant modifier la configuration de votre dépôt pour éviter l’authentification répétitive. Voici comment :
- Ouvrez le dossier `.git` dans le dépôt que vous avez cloné.
- Dans ce dossier, vous trouverez le fichier `config`. Ouvrez-le avec votre éditeur de texte préféré.
- Vous y trouverez une ligne contenant l’URL de votre dépôt.
- Modifiez cette URL en y ajoutant votre nom d’utilisateur et mot de passe comme indiqué ci-dessus.
Maintenant, faites une nouvelle modification dans votre dépôt, validez-la et poussez-la.
Avez-vous remarqué ?
Le système ne vous a pas demandé vos identifiants cette fois. Votre problème est résolu, grâce à la modification de l’URL du dépôt.
Cependant, vous avez peut-être remarqué que cette méthode n’est pas sécurisée, car elle expose vos identifiants. De plus, elle ne fonctionne pas si votre mot de passe contient le caractère `@`.
En raison de ces inconvénients importants, nous allons explorer une autre approche.
Utilisation de credential.helper
L’outil `credential.helper` permet de stocker vos identifiants dans le fichier `~/.git-credentials`, de manière à ce que vous n’ayez à les saisir qu’une seule fois. Après la première saisie, le système ne vous demandera plus vos identifiants tant qu’ils seront stockés dans ce fichier. Voici comment l’utiliser :
- Activez l’option de stockage des identifiants avec la commande `git config credential.helper store`.
- Après l’activation, tentez d’accéder à votre dépôt privé, en saisissant votre nom d’utilisateur et votre mot de passe lorsque cela vous est demandé.
- Vos informations d’identification GitHub seront alors enregistrées dans le fichier `~/.git-credentials`.
Essayez à nouveau d’accéder à votre dépôt. Vous verrez que vous n’avez pas à saisir vos informations d’identification. Cette méthode fonctionne correctement.
Cependant, si vous souhaitez enregistrer vos identifiants temporairement, par exemple pendant 4 heures au lieu de toujours, c’est possible. `credential.helper` offre une solution de mise en cache, qui stocke les identifiants temporairement.
Par défaut, le cache stocke les identifiants pendant 15 minutes. Après cette durée, le système vous demandera à nouveau de vous authentifier. Vous pouvez modifier cette durée en utilisant la commande suivante :
git config credential.helper 'cache --timeout={temps_en_secondes}'
N’oubliez pas que le temps doit être exprimé en secondes. Voici comment mettre en place la mise en cache :
- Activez l’option de mise en cache des identifiants avec la commande `git config credential.helper cache`.
- Accédez à votre dépôt privé en saisissant votre nom d’utilisateur et votre mot de passe.
- Vos informations d’identification seront mises en cache pour la durée spécifiée.
De la même manière que précédemment, tentez une modification et un push vers votre dépôt. Le système ne devrait pas vous demander vos identifiants.
Les commandes que nous avons vues concernent un dépôt git initialisé. Pour appliquer ces configurations à tous vos projets, utilisez l’indicateur `–global` dans les commandes.
Jetons d’accès personnels
Les jetons d’accès personnels sont utilisés pour authentifier l’accès à l’API GitHub. Ils fonctionnent comme des jetons OAuth et peuvent être utilisés à la place de votre mot de passe pour les opérations Git. Voici comment les mettre en place :
- Connectez-vous à votre compte GitHub.
- Accédez aux paramètres.
- Dans le menu de gauche, cliquez sur « Paramètres de développeur ».
- Cliquez ensuite sur « Jetons d’accès personnels ».
- Cliquez sur « Générer un nouveau jeton ».
- Ajoutez une note pour le jeton.
- Sélectionnez les autorisations pour ce jeton. Pour notre cas, sélectionnez « repo ».
- Faites défiler vers le bas et cliquez sur « Générer un jeton ».
- Le jeton sera affiché une seule fois. Copiez-le et enregistrez-le précieusement, par exemple, dans un gestionnaire de mots de passe.
- Le jeton d’accès est maintenant créé.
- Vous pouvez maintenant l’utiliser pour accéder à votre dépôt privé.
- Modifiez l’URL du dépôt dans le fichier `.git/config` comme suit : `https://{jeton_d_acces_personnel}@github.com/hafeezulkareem/private_repository.git`, en remplaçant `{jeton_d_acces_personnel}` par le jeton que vous venez de créer.
Essayez d’accéder à votre dépôt privé.
Le système vous a-t-il demandé de vous authentifier ?
Non, car le jeton est valide. Passons maintenant à la dernière méthode pour résoudre notre problème.
Authentification SSH
SSH permet une authentification sécurisée. Vous trouverez des informations complémentaires sur le fonctionnement de SSH dans la documentation GitHub ici.
Le principe est simple : générer une clé SSH, l’ajouter à votre compte GitHub, et ainsi bénéficier d’une authentification sans mot de passe.
Voyons les étapes en détail :
- Ouvrez le terminal ou l’invite de commande.
- Exécutez la commande `ssh-keygen -t rsa` pour générer une nouvelle clé SSH.
- Le système vous demandera le répertoire où sauvegarder la clé. Validez avec Entrée pour utiliser le répertoire par défaut, ou modifiez-le selon vos préférences.
- Le système vous demandera une phrase secrète pour protéger votre clé SSH. C’est optionnel :
- Si vous choisissez une phrase de passe, vous devrez la saisir à chaque démarrage de votre ordinateur.
- Si vous n’en choisissez pas, la connexion sera directe.
- Confirmez la phrase secrète si vous en avez choisie une.
- La clé SSH est générée, comme indiqué ci-dessous.
Deux fichiers sont créés dans le répertoire indiqué (les noms peuvent varier) :
Pour connecter votre clé à votre compte GitHub, il faut copier le contenu du fichier avec l’extension `.pub` (dans mon cas, `id_rsa.pub`) :
- Connectez-vous à votre compte GitHub.
- Accédez aux paramètres.
- Cliquez sur « Clés SSH et GPG ».
- Cliquez sur « Nouvelle clé SSH ».
- Vous êtes dirigé vers le formulaire suivant.
- Choisissez un titre pour la clé SSH (par exemple, le nom de votre ordinateur).
- Copiez le contenu du fichier `.pub` et collez-le dans le champ « Key ».
- Cliquez sur « Add SSH key » et confirmez en saisissant votre mot de passe GitHub.
- Votre nouvelle clé SSH est maintenant ajoutée.
Votre clé SSH est connectée à GitHub. Pour vous assurer que la connexion SSH fonctionne, entrez la commande suivante dans votre terminal :
ssh -T [email protected]
Confirmez et vous êtes prêt !
Clonez maintenant votre dépôt privé. Vous ne devriez plus être invité à vous authentifier.
Effectuez une modification, validez-la, et poussez-la. C’est tout, l’authentification ne sera plus requise. Profitez de cette simplicité !
Conclusion
Nous avons exploré différentes méthodes pour accéder à vos dépôts privés sans saisir constamment vos identifiants. Vous pouvez utiliser celle qui vous convient, mais la méthode SSH est généralement considérée comme la meilleure pratique en termes de sécurité et d’efficacité.
Le choix de la méthode reste personnel, et aucune règle n’impose l’utilisation exclusive de SSH. Cependant, la majorité des entreprises optent pour cette méthode en raison de sa sécurité et du gain de temps qu’elle apporte. N’oubliez pas de toujours protéger vos informations d’identification.
Bon développement ! 🙂