2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

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 me demande mon nom d'utilisateur et mon mot de passe GitHub. Je ne veux pas qu'il fasse ça.

J'ai essayé les instructions sur setting your email in Git , à savoir configurer les variables Git github.user et github.token, mais cela n'a fait aucune différence.

Je ne comprends pas pourquoi cela se produit.

Réponses (12)

215
215
215
2011-08-08 22:36:29 +0000

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 faire n'importe quelle demande 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, il suffit de lancer

git config -l

et de regarder 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 doivent être remplacés par le nom du dépôt approprié et le propriétaire de ce dépôt. Le nom d'utilisateur sera le vôtre si vous êtes le propriétaire du dépôt, ou le nom d'utilisateur du propriétaire du dépôt sinon.

34
34
34
2010-10-14 17:28:04 +0000

Vous devez mettre en place un ssh-agent contre lequel vous ne devez vous authentifier qu'une seule fois. Voir cette réponse sur SO pour un guide pratique.

31
31
31
2013-12-03 22:40:15 +0000

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

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

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

  3. Exécutez cette commande :

26
26
26
2014-11-21 04:27:04 +0000

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 demande 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

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

6
6
6
2014-02-23 11:54:29 +0000

Si vous êtes sous Windows et que vous utilisez HTTPS, essayez le Git Credential Store - il utilise le Windows Credential Store pour conserver 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.

Puis, la prochaine fois que vous entrerez votre nom et votre mot de passe, il les mémorisera pour vous.

6
6
6
2010-10-14 19:45:54 +0000

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
5
5
2013-08-11 03:17:37 +0000

De plus, si vous souhaitez être invité à saisir votre mot de passe à tout moment, mais pas votre nom d'utilisateur, vous devez 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, on vous demandera 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.

2
2
2
2014-09-25 19:45:49 +0000

Les choses sont un peu différentes si vous utilisez un auteur à 2 facteurs comme moi. Comme je n'ai pas trouvé de bonne réponse ailleurs, je vais en coller une ici pour pouvoir la trouver plus tard.

Si vous utilisez l'authentification à 2 facteurs, alors le fait de spécifier un nom d'utilisateur/mot de passe ne fonctionnera pas - l'accès vous sera refusé. Mais vous pouvez utiliser un jeton d'accès à l'application et utiliser l'assistant d'identification de git pour mettre cela en cache pour vous. Voici les liens pertinents :

Et je ne me souviens pas où j'ai vu ça mais quand on vous demande votre nom d'utilisateur - c'est là que vous collez le jeton d'accès à l'application. Ensuite, laissez le mot de passe vide. J'ai travaillé sur mon Mac.

2
2
2
2016-06-19 21:27:34 +0000

Pour éviter que GitHub ne vous demande le mot de passe en poussant, l'idéal est d'utiliser SSH** (git@github.com:...) au lieu de l'URL HTTPS (https://github.com/...) et d'ajouter votre clé SSH à votre compte GitHub ](https://help.github.com/articles/generating-an-ssh-key/). Voir : Quelle URL distante dois-je utiliser ?

une aide d'identification

Sinon, si vous devez vraiment utiliser HTTPS, pour mettre en cache votre mot de passe GitHub dans Git , vous devez utiliser une aide d'identification pour dire à Git de se souvenir de votre nom d'utilisateur et de votre mot de passe GitHub chaque fois qu'il parle à GitHub.

  • Mac : git config --global credential.helper osxkeychain (osxkeychain helper est requis),
  • Windows : git config --global credential.helper wincred
  • Linux et autres : git config --global credential.helper cache

.netrc

Une autre méthode consiste à utiliser configurer votre nom d'utilisateur/mot de passe dans ~/.netrc (_netrc sur Windows), e. g.

machine github.com
login USERNAME
password PASSWORD

OAuth

Utilisez OAuth token Personal API token ) pour pousser les changements, par exemple

git push https://4UTHT0KEN@github.com/foo/bar

Related :

1
1
1
2016-06-05 12:21:50 +0000

Demander le nom d'utilisateur est ennuyeux pour moi, mais demander un mot de passe est agréable car cela vous assure que vous voulez vraiment rendre vos changements publics…

Donc j'ajoute juste ceci à mon “.gitconfig”

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

De même, si vous utilisez Windows, vous pouvez utiliser :

$ git config --global credential.helper wincred

vous devez juste vous connecter une fois de plus et ensuite git se souviendra.

0
0
0
2016-07-07 13:37:29 +0000

Utilisez Git Credential Manager for Windows , si vous êtes sur Windows.

Ce projet comprend :

  • Stockage sécurisé des mots de passe dans le Windows Credential Store
  • Prise en charge de l'authentification à plusieurs facteurs pour Visual Studio Team Services
  • Prise en charge de l'authentification à deux facteurs pour GitHub
  • Génération et utilisation de jetons d'accès personnels pour Visual Studio Team Services et GitHub
  • Prise en charge du mode non interactif pour les services de Visual Studio Team soutenus par Azure Directory
  • Authentification Kerberos pour Team Foundation Server
  • Paramètres optionnels pour l'optimisation de l'agent de compilation

Il suffit de télécharger la dernière version et de l'installer.

Comment utiliser

Vous n'en avez pas. Il fonctionne magiquement lorsque des justificatifs d'identité sont nécessaires.