La répétition d’une même tâche est ennuyeuse et pénible pour les programmeurs que nous sommes. N’est-ce pas ?
L’une de ces tâches est l’interactivité avec le dépôt privé de GitHub. De quoi s’agit-il ? Vous savez de quoi il s’agit. Et vous cherchez des moyens de le résoudre et vous avez atterri sur cet article. Vous cesserez de chercher après avoir lu cet article.
Nous allons donc parler ici de l’accès au dépôt privé GitHub sans mot de passe. Sans plus attendre, commençons.
Il y a deux façons d’accéder à un dépôt GitHub. Il s’agit de HTTPS et de SSH. La plupart d’entre vous utilisent HTTPS. Mais vous savez maintenant qu’il n’est pas efficace d’utiliser la méthode HTTPS pour cloner les dépôts privés.
L’accès comprend le clonage, le push, le pulling, etc… ; tout ce qui est lié à la mise à jour de notre dépôt à distance.
Il n’y a pas de problème lorsqu’il s’agit d’accéder aux dépôts publics. Mais nous devons nous authentifier lorsque nous accédons à un dépôt privé. Il existe différentes façons de s’authentifier.
Commençons par la plus familière…
Si vous utilisez HTTPS
Vous devez probablement connaître la méthode HTTPS et en rechercher d’autres. Voyons rapidement comment accéder à un dépôt privé en l’utilisant.
- Copiez le lien de votre dépôt privé.
- Ouvrez le terminal ou cmd dans votre machine.
- Collez la commande
git clone link
pour cloner le dépôt privé. - Remplacez le lien par le lien de votre dépôt privé.
- Il nous demandera de nous authentifier. Nous devons donc entrer nos identifiants GitHub.
- Tout d’abord, il nous demandera d’entrer notre nom d’utilisateur GitHub. Entrez votre nom d’utilisateur GitHub et appuyez sur
Entrée
.
- Maintenant, nous devons entrer le mot de passe. Saisissez votre mot de passe GitHub et appuyez sur
Entrée
.
Voilà, nous avons cloné le dépôt privé en utilisant la méthode HTTPS . Maintenant, mettez à jour quelque chose dans le référentiel, livrez-le et poussez-le vers le serveur distant.
Qu’avez-vous remarqué ?
Il demande à nouveau l’authentification.
N’est-ce pas une tâche ennuyeuse et lourde que d’entrer des informations d’identification à chaque fois que nous interagissons avec le référentiel privé ?
Oui, c’est vrai.
Nous ne pouvons pas entrer nos identifiants GitHub à chaque fois que nous interagissons avec notre dépôt privé. C’est un processus qui prend du temps et qui ralentit notre travail.
Il y a plusieurs façons de se débarrasser de ce problème. La meilleure façon de le faire est d’utiliser SSH. Mais il existe d’autres façons de le faire. Examinons-les une à une.
.git config
Toutes les informations sur les versions de nos dépôts sont stockées dans le répertoire .git
. C’est un dossier caché. Il y a un fichier de configuration
dans ce répertoire qui nous permet de configurer les paramètres. Mais ce n’est pas recommandé en général.
Nous pouvons cloner un dépôt privé en ajoutant notre nom d’utilisateur et notre mot de passe dans l’URL du dépôt comme suit.
git clone<strong>https://username:password@github.com/username/repository_name.git</strong>
Mettez à jour le nom d ‘utilisateur, le mot de passe et le nom du dépôt avec les détails appropriés. Puisque nous avons donné nos informations d’identification dans l’URL, il n’y aura pas de demande d’authentification comme nous l’avons vu précédemment.
Nous allons donc suivre la méthode d’authentification ci-dessus et mettre à jour la configuration de notre dépôt en conséquence. Voyons les étapes pour se débarrasser de l’authentification répétitive en mettant à jour l’URL.
- Ouvrez le dossier
.git
dans votre dépôt cloné.
- Vous y trouverez un fichier nommé config. Ouvrez-le en utilisant l’éditeur de texte de votre choix.
- Il y aura une ligne avec le lien de notre dépôt comme suit.
- Mettez à jour l’URL en ajoutant votre nom d’utilisateur et votre mot de passe, comme indiqué ci-dessus.
Maintenant, mettez à nouveau à jour quelque chose dans le référentiel, livrez-les et poussez-les.
Observez-vous quelque chose ?
Il n’aurait pas dû vous demander vos identifiants GitHub cette fois-ci. Nous avons donc résolu notre problème en mettant à jour les paramètres de notre dépôt.
Vous avez peut-être remarqué que ce n’est pas sécurisé. En effet, nous exposons nos informations d’identification. Et cette méthode ne fonctionnera pas si votre mot de passe GitHub contient le caractère@
.
Il y a donc des inconvénients majeurs à utiliser cette méthode. Ignorons-la donc et passons à la méthode suivante.
credential.helper
Le credential.helper
nous permet de stocker les credentials pour toujours dans le fichier ~/.git-credentials
.
Il stocke nos informations d’identification lorsque nous les saisissons pour la première fois. De nouveau, lorsque nous essayons d’accéder au dépôt privé, il ne nous demandera pas d’informations d’identification jusqu’à ce qu’elles soient stockées dans le fichier ~/git-credentials
. C’est donc l’une des façons d’éviter notre problème. Voyons cela en action avec des étapes précises.
- Tout d’abord, nous devons activer l’option pour stocker nos informations d’identification avec la commande
git config credential.helper store
. - Après avoir activé l’option, essayez d’accéder au dépôt privé avec votre nom d’utilisateur et votre mot de passe.
- Une fois que vous avez saisi votre nom d’utilisateur et votre mot de passe, ils seront stockés dans le fichier
~/.git-credentials
avec vos informations d’identification GitHub comme suit.
Maintenant, reprenez le même processus pour vérifier s’il fonctionne correctement ou non. Mise à jour, commit et push. Je suis sûr qu’il ne vous demandera pas d’informations d’identification si vous avez suivi les étapes ci-dessus pour enregistrer vos informations d’identification.
Tout se passe bien…
Que faire si vous voulez sauvegarder les informations d’identification pendant 4 heures au lieu de les conserver pour toujours ?
L’aide credential.helper
permet de stocker temporairement nos informations d’identification pendant un certain temps. Nous utilisons cache
au lieu de store
pour stocker les informations d’identification pendant un certain temps.
Le cache
stockera nos informations d’identification pendant 15 minutes par défaut. Après 15 minutes, git demandera à nouveau des informations d’identification. Mais nous pouvons modifier la durée par défaut à l’aide de la commande suivante.
git config credential.helper 'cache --timeout={time_in_seconds}'
N’oubliez pas d’indiquer le temps en secondes. Voyons cela en action.
- Tout d’abord, nous devons activer l’option de mise en cache de nos informations d’identification avec la commande
git config credential.helper cache
. - Accédez au dépôt privé avec votre nom d’utilisateur et votre mot de passe.
- Une fois que vous avez saisi votre nom d’utilisateur et votre mot de passe, vos informations d’identification GitHub seront mises en cache pour une durée déterminée.
Maintenant, mettez à jour, livrez et poussez. Encore une fois, il ne vous demandera pas vos informations d’identification car nous lui avons demandé de les mettre en cache.
Nous vous avons montré les commandes pour travailler sur un dépôt initialisé par git. Nous pouvons mettre à jour la configuration de git
globalement pour tous les projets en ajoutant le drapeau --global
dans les commandes ci-dessus.
Jetons d’accès personnels
Les jetons d’accès personnels sont utilisés pour donner accès à l’API de GitHub. Les jetons d’accès personnels sont comme des jetons OAuth . Ils peuvent donc être utilisés pour l’authentification de base au lieu d’un mot de passe pour git
. Nous pouvons donc utiliser les jetons d’accès personnels pour résoudre notre problème.
Voyons comment procéder.
- Connectez-vous à votre compte GitHub.
- Allez dans les Paramètres.
- Allez maintenant dans les paramètres de développement dans la barre de navigation de gauche.
- Cliquez sur Personal access tokens pour atteindre notre destination finale. Vous verrez les jetons d’accès personnels comme suit.
- Cliquez sur Generate new token pour en générer un nouveau.
- Saisissez la note pour le jeton. Vous pouvez considérer qu’il s’agit de courtes notes dont le jeton doit se souvenir.
- Sélectionnez les autorisations pour le jeton. Les programmes utilisant le jeton donneront accès à toutes les permissions sélectionnées. Dans notre cas, sélectionnez le repo.
- Descendez jusqu’en bas et cliquez sur le bouton Generate token .
- Le jeton d’accès personnel n’apparaîtra qu’une seule fois, comme suit. Nous ne pouvons plus voir notre jeton personnel. Copiez-le et sauvegardez-le dans un endroit sûr. Utilisez un gestionnaire de mots de passe si nécessaire.
- Nous avons créé avec succès le jeton d’accès personnel.
- Il est maintenant temps de l’utiliser pour accéder à notre dépôt privé.
- Mettez à jour l’URL du dépôt dans le fichier
.git/config
commehttps://{personal_access_token}@github.com/hafeezulkareem/private_repository.git
comme dans la première méthode.
Maintenant, essayez d’accéder au dépôt privé.
L’authentification vous a-t-elle été demandée ?
Non, il ne vous demandera pas l’authentification tant que le jeton n’est pas actif. Passons à la dernière façon de résoudre notre problème.
SSH
SSH est utilisé pour s’authentifier. Vous trouverez le document complet sur SSH sur GitHub ici.
L’idée est simple. Générez une clé SSH, ajoutez-la au compte GitHub et profitez de l’authentification sans mot de passe.
Voyons ces trois étapes en détail.
- Ouvrez le terminal ou cmd dans votre système.
- Entrez la commande
ssh-keygen -t rsa
pour générer une nouvelle clé SSH. - La commande vous demandera le répertoire dans lequel vous souhaitez enregistrer la clé. Appuyez sur
Entrée
pour sélectionner le répertoire par défaut. Mais vous pouvez également modifier le répertoire en fonction de vos préférences. Ici, nous utilisons le répertoire par défaut.
- Maintenant, nous devons entrer la phrase de passe pour protéger notre clé SSH. Mais c’est facultatif.
- Si nous choisissons une phrase de passe pour la clé SSH, nous devons la saisir à chaque fois que nous allumons notre système.
- Si nous n’avons pas choisi de phrase de passe, il n’est pas nécessaire de la saisir en premier.
- Saisissez à nouveau la phrase de passe pour la confirmer.
- Enfin, une nouvelle clé SSH sera générée comme suit.
Nous avons réussi à générer une nouvelle clé SSH dans nos systèmes. Elle créera deux fichiers comme suit (si vous avez changé le chemin d’accès, les noms des fichiers peuvent varier).
Il est maintenant temps de se connecter à notre compte GitHub. Le contenu du fichier avec l’extension .pub
doit être copié sur notre compte GitHub pour la connexion. Dans mon cas, il s’agit de id_rsa.pub
.
- Connectez-vous à votre compte GitHub.
- Ouvrez les paramètres.
- Cliquez sur SSH et GPG Keys pour atteindre notre destination finale.
- Cliquez sur New SSH Key pour ajouter notre nouvelle clé SSH.
- L’écran suivant s’affiche.
- Ajoutez le titre approprié pour la clé SSH. Les clés SSH sont différentes pour chaque système. Choisir en fonction de cela est donc l’une des bonnes options. Mais ce n’est pas la seule option. Vous pouvez choisir d’autres éléments en fonction de vos préférences.
- Après avoir choisi le titre, copiez et collez le contenu du fichier .pub dans le deuxième champ.
- Enfin, cliquez sur Add SSH key et confirmez l’accès avec votre mot de passe GitHub.
- La nouvelle clé SSH ajoutée se présente comme suit.
Nous avons ajouté notre nouvelle clé SSH à GitHub. Maintenant, nous devons authentifier la connexion SSH pour profiter de l’authentification sans mot de passe plus tard. Pour ce faire, entrez la commande suivante dans le terminal ou cmd.
ssh -T git@github.com
Une confirmation vous sera demandée. Confirmez-la. Et c’est tout, nous avons terminé.
Maintenant, clonez votre dépôt privé. Il ne vous demandera pas d’authentification cette fois-ci.
Mettez à jour, livrez et poussez. Et voilà. Il ne vous demandera plus d’authentification. Profitez-en.
Conclusion
Nous avons couvert plusieurs méthodes pour accéder à des dépôts privés sans avoir à entrer des informations d’identification tout le temps. Vous pouvez utiliser n’importe quelle méthode. Mais la meilleure pratique consiste à utiliser la méthode SSH pour l’authentification.
Encore une fois, c’est votre préférence ; il n’y a pas de règle stricte pour utiliser la seule méthode SSH . Mais la plupart des entreprises utilisent la méthode SSH pour l’authentification, ce qui est sûr et fait gagner beaucoup de temps. Et assurez-vous que vos informations d’identification sont en sécurité.
Bon développement 🙂