181 votes

Comment faire pour que Git ne me demande pas mon nom d'utilisateur et mon mot de passe GitHub ?

Je travaille avec un repo sur GitHub et chaque fois que j'essaie de pousser quelque chose, il me demande mon nom d'utilisateur et mon mot de passe GitHub. Je ne veux pas qu'il fasse cela.

J'ai essayé les instructions sur paramétrer votre email dans Git Nous avons notamment configuré les variables Git github.user et github.token, mais cela n'a rien changé.

Je ne comprends pas pourquoi cela se produit.

218voto

J'ai eu un problème similaire aujourd'hui : J'ai fait des erreurs dans ma copie de travail, j'ai donc décidé de renommer le répertoire et de cloner à nouveau mon projet depuis github. Mais après avoir fait cela, j'ai dû entrer mon mot de passe pour faire toute demande de pull/push, au lieu d'entrer la phrase de passe une seule fois comme je le faisais auparavant.

C'est parce qu'aujourd'hui j'ai utilisé le protocole https pour cloner le projet ! Pour vérifier quel protocole vous utilisez, exécutez simplement

git config -l

et regardez la ligne qui commence par 'remote.origin.url'.

Pour changer de protocole :

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username et your_project doit être remplacé par le nom du référentiel approprié et le propriétaire de ce référentiel. Le nom d'utilisateur sera le vôtre si vous possédez le référentiel, ou le nom d'utilisateur du propriétaire du référentiel sinon.

34voto

Michael Medin Points 605

Vous devez configurer un agent ssh contre lequel vous ne devez vous authentifier qu'une seule fois. Voir cette réponse sur SO pour un howto.

34voto

Eray Points 501

Si vous utilisez HTTPS au lieu de SSH, vous pouvez suivre cette procédure :

  1. Trouvez votre URL distant (remote.origin.url) avec

    git config -l

    grâce à Sergio Morstabilini

  2. Votre URL distant sera comme ceci : https://{USERNAME}@github.com/{USERNAME}/{REPONAME}.git

  3. Exécutez cette commande :

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git

32voto

stefanmaric Points 421

Je préfère utiliser HTTPS, je trouve cela plus facile et plus sûr que de configurer les clés ssh.

En utilisant HTTPS, vous pouvez empêcher git de demander votre nom d'utilisateur pour les télécommandes github avec ce qui suit :

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

Et vous pouvez au moins réduire la fréquence à laquelle git vous demande votre mot de passe :

git config --global credential.helper 'cache --timeout=28800'

Où 28800 sont 8 heures. J'utilise cette configuration pour ne saisir mon mot de passe qu'une seule fois, lorsque je commence ma journée de travail.

Après cela, vous aurez ces entrées dans votre ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Source :

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config

8voto

MemCtrl Points 9

De même, si vous souhaitez être invité à saisir votre mot de passe à chaque fois, mais pas votre nom d'utilisateur, vous pouvez configurer la télécommande en HTTPS avec un nom d'utilisateur . Comme ceci

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Après cela, votre mot de passe vous sera demandé à chaque fois, mais pas votre nom d'utilisateur.

C'est ainsi que je préfère, car j'aime être obligé de taper mon mot de passe Github avant de le partager avec le monde entier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X