web-dev-qa-db-fra.com

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 référentiel 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 le veux pas faire ça.

J'ai essayé les instructions sur configurer votre email dans Git , à savoir configurer les variables Git github.user et github.token, mais cela n'a pas changé.

Je ne comprends pas pourquoi cela se passe.

167
picardo

Vous devez configurer un agent ssh par rapport auquel vous ne devez vous authentifier qu'une seule fois. Voir cette réponse plus à SO pour un howto.

30
Benjamin Bannier

J'ai eu un problème similaire aujourd'hui: j'ai gâché 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 cela, je devais entrer mon mot de passe pour faire n'importe quelle requête pull/push, au lieu de saisir la phrase secrète une seule fois comme auparavant.

C'est parce qu'aujourd'hui j'ai utilisé le protocole https pour cloner le projet! Pour vérifier le protocole que 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 [email protected]:the_repository_username/your_project.git

the_repository_username et your_project doivent être remplacés par le nom de référentiel approprié et le propriétaire de ce référentiel. Le nom d'utilisateur vous appartiendra si vous possédez le référentiel, ou le nom d'utilisateur du propriétaire du référentiel dans le cas contraire.

212

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

  1. Recherchez votre URL distante (remote.Origin.url) avec

    git config -l
    

    grâce à Sergio Morstabilini

  2. Votre URL distante ressemblera à 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
    
29
Eray

Je préfère utiliser HTTPS, je trouve cela plus facile et plus sécurisé 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://[email protected]".insteadOf "https://github.com"

Et vous pouvez au moins réduire la fréquence à laquelle git vous 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://[email protected]"]
    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

26
stefanmaric

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
6
Daenyth

Si vous utilisez Windows avec HTTPS, essayez le Git Credential Store -. Il utilise le Windows Credential Store pour contenir 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, ils s'en souviendront pour vous.

6
Brian Burns

De même, si vous souhaitez que votre mot de passe vous soit demandé à chaque fois, mais pas votre nom d'utilisateur, configurez la télécommande en tant que HTTPS avec un nom d'utilisateur.

git config remote.Origin.url https://[email protected]/repo_owner/repo_name

Après cela, votre mot de passe vous sera demandé à 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
David Jeske

utiliser SSH

Pour éviter que GitHub ne demande le mot de passe en appuyant, vous devriez idéalement utilisez SSH ([email protected]:...) au lieu de l'URL HTTPS (https://github.com/...) et ajoutez votre clé SSH à votre compte GitHub . Voir: Quelle URL distante devrais-je utiliser?

 GitHub - Clone with SSH

un assistant d'identification

Sinon, si vous avez vraiment besoin d'utiliser HTTPS, pour mettre en cache votre mot de passe GitHub dans Git , vous devez utiliser assistant d'identification pour indiquer à Git de mémoriser votre nom d'utilisateur et 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 à configurer votre utilisateur/mot de passe dans ~/.netrc (_netrc sous Windows), par exemple.

machine github.com
login USERNAME
password PASSWORD

OAuth

Utilisez Jeton OAuth ( Jeton API personnelle ) pour Transférer les modifications, par exemple.

git Push https://[email protected]/foo/bar

En relation:

2
kenorb

Les choses sont un peu différentes si vous utilisez une authentification à 2 facteurs comme je le suis. 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 une authentification à 2 facteurs, alors spécifier un nom d'utilisateur/mot de passe ne fonctionnera pas - vous obtiendrez un accès refusé. Mais vous pouvez utiliser un jeton d'accès à une application et utiliser l'assistant des informations d'identification de git pour le mettre en cache pour vous. Voici les liens pertinents:

Et je ne me souviens pas où j'ai vu cela, mais lorsqu'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. Travaillé sur mon mac.

2
John Berryman

De plus, si vous utilisez Windows, vous pouvez utiliser:

$ git config --global credential.helper wincred

il vous suffit de vous connecter une fois de plus, puis git s'en souviendra.

1

Demander le nom d'utilisateur m'énerve, mais demander un mot de passe, c'est gentil, car cela vous donne vraiment envie de rendre public vos modifications ...

Donc, je viens d'ajouter ceci à mon ".gitconfig"

[url "https://[email protected]"]
    insteadOf = https://github.com
1
ViToni

Utilisez Git Credential Manager for Windows , si vous utilisez Windows.

Ce projet comprend :

  • Stockage sécurisé des mots de passe dans Windows Credential Store
  • Prise en charge de l'authentification multifacteur pour Visual Studio Team Services
  • Prise en charge de l'authentification à deux facteurs pour GitHub
  • Prise en charge de l'utilisation et de la génération de jetons d'accès personnel pour Visual Studio Team Services et GitHub
  • Prise en charge en mode non interactif de Visual Studio Team Services s'appuyant sur Azure Directory
  • Authentification Kerberos pour Team Foundation Server
  • Paramètres facultatifs pour l'optimisation de l'agent de génération

Simplement téléchargez la dernière version } _ et installez-le.

Comment utiliser

Vous pas. Cela fonctionne magiquement lorsque des informations d'identification sont nécessaires.

0
Jalal