Comment puis-je m'assurer que Git ne me demande pas mon identifiant 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 veux pas que cela se fasse.

J'ai essayé les instructions sur la configuration de votre courrier électronique dans Git , à savoir mettre en place les variables Git github.user et github.token, mais cela n'a pas changé.

Je ne comprends pas pourquoi cela se produit.

  • Que dois-je faire si je pose accidentellement des données sensibles sur Github?
  • Comment réparer les icônes GitHub (octicons) sur Firefox?
  • Cowsay ne dit rien
  • Comment puis-je mettre en cache les informations d'identification de Yubikey / U2F lors de l'authentification sur SSH (spécifiquement Git)?
  • Github pour Mac installe un serveur web, "github conduit". Est-ce un risque de sécurité?
  • Comment publier l'application GitHub aux utilisateurs distants de Windows Server 2012?
  • Problèmes lors de la construction d'un projet Android Github
  • 12 Solutions collect form web for “Comment puis-je m'assurer que Git ne me demande pas mon identifiant et mon mot de passe GitHub?”

    Vous devez configurer un ssh-agent sur lequel vous devez uniquement vous authentifier une fois. Voir cette réponse sur SO pour un howto.

    J'ai eu un problème similaire aujourd'hui: j'ai dérangé dans ma copie de travail, alors j'ai décidé de renommer le répertoire et de cloner mon projet de nouveau à partir de github. Mais après cela, j'ai dû entrer mon mot de passe pour faire une demande de tirage / poussée, au lieu d'entrer la phrase de passe juste une fois comme j'avais l'habitude.

    C'est parce que j'ai utilisé le protocole https pour cloner le projet! Pour vérifier le protocole que vous utilisez, exécutez-vous

    git config -l 

    Et regardez la ligne en 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 de dépôt approprié et le propriétaire de ce dépôt. Le nom d'utilisateur sera le vôtre si vous possédez le référentiel, ou le nom du propriétaire du référentiel autrement.

    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 / {NOM DE L'UTILISATEUR} / {REPONAME} .git

    3. Exécutez cette commande:

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

    Je préfère utiliser HTTPS, je trouve cela plus facile et plus sécurisé que la configuration des 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 que 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, quand je commence ma journée de travail. (Taureaux ** t, code I la nuit aussi!)

    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

    Si vous utilisez Windows avec HTTPS, essayez le Git Credential Store – il utilise le magasin d'accréditation Windows 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. 

    Ensuite, la prochaine fois que vous entrez votre nom et votre mot de passe, il les rappellera pour vous.

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

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

    En outre, si vous souhaitez être invité pour votre mot de passe tous les temps, mais pas simplement votre nom d'utilisateur, vous configurez la télécommande comme 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 recevrez votre mot de passe à chaque fois, mais pas votre nom d'utilisateur.

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

    Les choses sont un peu différentes si vous utilisez l'authentification 2-facteur que je le suis. Comme je n'ai pas trouvé une bonne réponse ailleurs, j'y retrouverai un ici afin que je puisse le trouver plus tard.

    Si vous utilisez l'authentification à 2 facteurs, la saisie du nom d'utilisateur / mot de passe ne fonctionnera pas. Vous avez accès refusé. Mais vous pouvez utiliser un jeton d'accès aux applications et utiliser l'assistant d'identification de git pour le cacher pour vous. Voici les liens pertinents:

    • Configuration de la ligne de commande pour fonctionner avec authentification à 2 facteurs (recherche de la section intitulée «Comment ça marche pour Git de ligne de commande?»)
    • Mise en cache de l'identification

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

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

     $ git config --global credential.helper wincred 

    Il vous suffit de vous inscrire une fois de plus, et git s'en souviendra.

    Utiliser SSH

    Pour empêcher GitHub de demander le mot de passe en poussant, idéalement, vous devez utiliser SSH ( git@github.com:... ) au lieu de l'URL HTTPS ( https://github.com/... ) et ajouter votre clé SSH à votre Compte GitHub . Voir: Quelle URL à distance dois-je utiliser?

    GitHub - Clone avec SSH

    Un assistant d'accréditation

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

     machine github.com login USERNAME password PASSWORD 

    OAuth

    Utilisez OAuth token ( Personal API token ) pour pousser les modifications, p.ex.

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

    En relation:

    • Existe-t-il un moyen d'ignorer la saisie de mot de passe lors de l'utilisation de https: // sur GitHub?
    • Comment enregistrer votre mot de passe https de GitHub sur Linux dans un porte-clés de terminal?
    • Configurez les clients Git, comme GitHub pour Windows, pour ne pas demander l'authentification

    Demander le nom d'utilisateur est ennuyant pour moi, mais demander un mot de passe est sympa, car il vous assure de vraiment faire évoluer vos changements …

    Donc, je l'ajoute à mon ".gitconfig"

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

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

    Ce projet comprend :

    • Stockage de mot de passe sécurisé dans le magasin d'accréditation Windows
    • Support d'authentification multi-facteurs pour Visual Studio Team Services
    • Support d'authentification à deux facteurs pour GitHub
    • Prise en charge de l'utilisation personnelle de jetons et de l'utilisation pour Visual Studio Team Services et GitHub
    • Support de mode non interactif pour Visual Studio Team Services pris en charge par Azure Directory
    • Authentification Kerberos pour Team Foundation Server
    • Paramètres facultatifs pour l'optimisation de l'agent de construction

    Téléchargez simplement la dernière version et installez-la.

    Comment utiliser

    Vous ne le faites pas. Il fonctionne par magie lorsque les informations d'identification sont nécessaires.

    Soyons le génie de l'ordinateur et du réseau.