Git demande un nom d'utilisateur à chaque fois que je pousse

chaque fois que j'essaie de pousser dans mon rapport demande les deux username & password .

Je n'ai aucun problème à entrer de nouveau mon mot de passe à chaque fois, mais le problème est d'entrer le nom d'utilisateur. J'utilise https pour cloner mon dépôt.

alors, comment puis-je configurer git pour qu'il ne demande pas username sur chaque git push .

je suis nouveau sous linux mais IIRC dans windows git push ne demande que le mot de passe.

401
demandé sur Cœur 2012-07-10 01:25:38

15 réponses

Modifier (par @dk14 comme suggéré par les modérateurs et les commentaires)

AVERTISSEMENT: Si vous utilisez credential.helper store de la réponse, de votre mot de passe va être complètement stocké en clair ("comme") à ~/.git-credentials . Veuillez consulter la section "commentaires" ci-dessous ou les réponses de la section "Liens", surtout si votre employeur a une tolérance zéro pour les questions de sécurité.

explication: l'approche décrit dans la réponse pourrait introduire une vulnérabilité majeure, en particulier pour les entreprises opérant sur des données financières privées. Combiné avec des problèmes de sécurité mineurs (souvent présents dans un tel) ou l'ingénierie sociale minimale, il permet de détourner la plupart des justificatifs d'identité dans le réseau du projet que l'emplacement du mot de passe "nu" est connu à l'avance. Cela inclut éventuellement des justificatifs donnant un accès partiel à l'environnement de production, donc augmentant de facto les droits d'accès de l'attaquant [interne] et permettant pour couvrir l'identité du hacker dans une certaine mesure.

en guise de remarque complémentaire (pour étendre cet avertissement par l'exemple), plusieurs projets de grandes entreprises semblent avoir ce problème malgré la fourniture d'environnements virtuels sécurisés pour les employés...Fondamentalement mon appel à se débarrasser de https auth a été rejeté sur ce motif - mais, à l'époque, je ne pensais pas qu'un exploit (comme cat ~/git.credentials | curl ... ) peut être injecté à des scripts auxiliaires de bash/build hébergés sur Git afin de le diffuser parmi les utilisateurs, peut-être même anonymement (car certains sont automatiquement synchronisés). Pour être honnête, ce piratage ne donnerait généralement pas (au moins) directement accès aux systèmes critiques. Sauf si Git-credentials === corporate-email-credentials .


Edit #2 (par @dk14):

bien qu'il soit accepté, il ne répond pas à la question de L'opération réelle sur l'omission d'un nom d'utilisateur seulement (Pas mot de passe). Pour les lecteurs avec ce problème précis de @grawity'S "réponse pourrait être utile.


réponse originale (par @Alexander Zhu):

vous pouvez stocker vos informations d'identification en utilisant la commande suivante

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>

je vous suggère aussi de lire

$ git help credentials

719
répondu Alexander Zhugastrov 2018-07-30 05:09:22

vous pouvez accomplir ceci dans le fichier .git/config de votre dépôt local. Ce fichier contient une section appelée "distance" avec une entrée appelée "url". L'entrée ' url ' devrait contenir le lien https du dépôt dont vous parlez.

lorsque vous préfixez l'url de l'hôte avec votre nom d'utilisateur, git ne devrait plus vous demander votre nom d'utilisateur. Voici un exemple:

url = https://username@repository-url.com
119
répondu MERose 2015-02-20 21:11:13

authentification permanente avec des dépôts Git

exécuter la commande suivante pour activer la mise en cache des justificatifs d'identité:

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

l'utilisation devrait également préciser caching expire

git config --global credential.helper "cache --timeout 7200"

après avoir activé la mise en cache des justificatifs d'identité, il sera mis en cache pour 7200 secondes (2 heures) .


lire lettres de créance Docs

$ git help credentials
66
répondu Jay Patel 2018-07-10 14:55:01

si vous utilisez https au lieu de ssh, vous pouvez éditer "url" dans .git/config comme le dit user701648, mais si vous voulez, vous pouvez ajouter aussi le mot de passe:

url = https://username:password@repository-url.com
20
répondu Daniel Lerch 2014-02-27 12:16:21

la façon la plus facile que j'ai trouvée était avec cette commande:

git config --global credential.https://github.com.username <your_username>

cela fonctionne sur une base site par site et modifie votre configuration git globale.

pour voir les changements, utilisez:

git config --global --edit
18
répondu Ben 2017-07-20 22:30:45

vous pouvez définir votre nom d'utilisateur pour tous les dépôts sur un site donné en mettant quelque chose comme ceci dans votre fichier de configuration Git. Vous voudrez changer " "https://example.com "et" moi " à L'URL réelle et à votre nom d'utilisateur réel.

[credential "https://example.com"]
    username = me

(C'est directement à partir de "git aide des informations d'identification")

17
répondu Alan De Smet 2014-11-19 01:42:39

ajouter les nouvelles clés SSH comme décrit dans cet article sur GitHub .

si Git vous demande toujours votre nom d'utilisateur et votre mot de passe, essayez de changer https://github.com/ en git@github.com: dans L'URL distante:

$ git config remote.origin.url 
https://github.com/dir/repo.git

$ git config remote.origin.url "git@github.com:dir/repo.git"
14
répondu Lukasz Czerwinski 2016-01-22 23:06:17

assurez-vous que vous utilisez SSH à la place de http. Cochez ce alors répondez.

8
répondu gkris 2017-05-23 11:47:26

en plus de la réponse de user701648, vous pouvez stocker vos informations d'identification dans votre dossier personnel (global pour tous les projets), au lieu du dossier de projet en utilisant la commande suivante

$ git config --global credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
5
répondu Yuvi 2017-05-22 05:56:55

changer les pièces de repo clonées:

git remote set-url origin git@github.com:gitusername/projectname.git

L'utilisation de justificatifs d'identité en cache fonctionne, et le réglage de la période d'arrêt rend les choses moins ennuyeuses. Si vous utilisez Windows credential helper, cela devrait être la méthode la plus facile (surtout si SSH est bloqué).

3
répondu Layer8Err 2017-11-09 05:53:13

si vous utilisez la version SSH , vous n'aurez aucun problème avec les mots de passe.Une seule fois vous générez SSH clé, pour dire git, que ce pc fonctionnera avec ce "compte github 151920920" et ne me demandez plus jamais à propos d'un accès (pour ce pc).

comment générer SSH pour Github

2
répondu Hazarapet Tunanyan 2016-04-28 20:39:08

la manière la plus simple est de créer un fichier ~/.netrc avec le contenu suivant:

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(comme indiqué ici: https://gist.github.com/ahoward/2885020 )

vous pouvez même fermer les permissions sur ce fichier pour que personne ne puisse lire votre mot de passe en tapant:

chmod 600 ~/.netrc
2
répondu Simpler 2018-09-04 23:39:36
  1. $ git config d'informations d'identification.helper magasin

  2. $ git push / push https://github.com/xxx.git

  3. entrez votre nom d'utilisateur et votre mot de passe.

  4. fait
1
répondu Stephen Tun Aung 2017-04-06 05:40:26

Quand Je ne git pull que git pull փ git pull origine xxx փ git demande à la fois le nom d'utilisateur et le mot de passe.

git config credential.helper store

ça marche.

1
répondu Languoguang 2018-06-12 12:26:59

pour éviter d'entrer un nom d'utilisateur, mais tout de même être invité à entrer un mot de passe, alors vous pouvez simplement cloner votre dépôt y compris le nom d'utilisateur:

git clone user_name@example.gitrepo.com/my_repo.git
0
répondu ManoDestra 2017-06-09 13:13:57