Question Comment puis-je m'assurer 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 demande mon nom d'utilisateur et mon mot de passe GitHub. Je ne le veux pas.

J'ai essayé les instructions sur définir votre email dans Git, à savoir mettre en place les variables Git github.user et github.token, mais cela ne fait aucune différence.

Je ne comprends pas pourquoi cela se produit.


158
2017-10-14 17:17


origine


Vous devez mettre le mot de passe en cache: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


Réponses:


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


27
2017-10-14 17:28



Mais cette solution concerne les phrases de la famille ssh. Le problème est que git utilise "git push" qui ne déclenche pas le ssh-agent, je suppose. (Je l'ai déjà fait, alors je sais que ça ne marche pas.) - picardo
@picardo: Je l'ai fait et ça marche effectivement. - Daenyth


J'ai eu un problème similaire aujourd'hui: j'ai tout gâché dans ma copie de travail, alors j'ai décidé de renommer le répertoire et de cloner à nouveau mon projet à partir de github. Mais après avoir fait cela, j'ai dû entrer mon mot de passe pour effectuer une requête Pull / Push, au lieu de saisir la phrase secrète une seule fois, comme je le faisais auparavant.

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

git config -l

et regardez la ligne commençant 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.


205
2017-08-08 22:36



Cela a fonctionné pour moi. Une chose est que l'URL ne contient pas mon nom d'utilisateur mais l'adresse de dépôt telle qu'elle apparaît sur github: git@github.com:some-user/repo-name.git - B Seven
Note: Google m'a amené ici. J'avais le remote.origin.url mis à la méthode https et n'a même pas remarqué qu'il y avait https contre ssh méthodes. Cette URL m'a aidé à voir l'évidence: help.github.com/articles/ - Chris K
Existe-t-il un moyen de transmettre le mot de passe aussi? - zishe
Q pour ceux avec des connaissances git: Toute différence (ou préférence) entre git config remote.origin.url ... utilisé ci-dessus, vs git remote set-url origin ...? - Daryn
Je ne pouvais pas comprendre comment supprimer une origine erronée comme celle-là. La réponse est: git remote rm origin - Vacilando


Si vous utilisez HTTPS au lieu de SSH, vous pouvez suivre ceci:

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

    git config -l
    

    merci à Sergio Morstabilini

  2. Votre URL distante 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
    

28
2017-12-03 22:40



mon nom d'utilisateur contient lui-même @, n'a pas travaillé pour moi. - coding_idiot
Mais si ce n'est pas le cas (vous n'avez pas besoin d'utiliser votre courrier électronique), cela fonctionne parfaitement! Merci. - Killah
Si votre nom d'utilisateur contient un @, vous devez le coder par URL. meyerweb.com/eric/tools/dencoder - Tim Bodeit
Vous devez omettre votre mot de passe pour des raisons de sécurité. - zygimantus
Attention, le mot de passe sera stocké en clair dans le .git/config fichier! - Amro


Je préfère utiliser HTTPS, je le trouve 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 les éléments suivants:

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

Et vous pouvez au moins réduire la fréquence demandée par votre mot de passe avec:

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

Où 28800 sont 8 heures. J'utilise cette configuration pour entrer mon mot de passe 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

La source:

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

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


24
2017-11-21 04:27



Ça a marché comme sur des roulettes. Merci. - david euler


Si vous utilisez Windows en utilisant HTTPS, essayez le Git Credential Store - Il utilise le Windows Credential Store pour stocker votre nom et votre mot de passe.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Ensuite, la prochaine fois que vous entrez votre nom et votre mot de passe, vous vous en souviendrez.


6
2018-02-23 11:54



Je vous remercie. Le projet a été renommé en Git-Credential-Manager-pour-Windows. - Michael S.


Lorsque vous configurez une clé ssh pour github, si ce n’est pas votre clé par défaut, vous devrez ajouter une section à votre ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5
2017-10-14 19:45





De plus, si vous souhaitez être invité à entrer votre mot de passe à chaque fois, mais pas votre nom d'utilisateur, configurez la télécommande en HTTPS avec un nom d'utilisateur. Comme ça ..

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

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

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


5
2017-08-11 03:17