J'utilise Git depuis un certain temps maintenant, mais les demandes constantes de mot de passe commencent à me faire monter le mur.
J'utilise Mac OS X et GitHub, et j'ai configuré Git et mes clés SSH comme indiqué par la page Configurer Git de GitHub .
J'ai également ajouté la clé SSH github à mon trousseau de clés Mac OS X, comme mentionné sur la page des phrases secrètes de clé SSH de GitHub . Ma clé publique est enregistrée auprès de Git.
Néanmoins, chaque fois que j'essaie de tirer Git, je dois entrer mon nom d'utilisateur et mon mot de passe. Y a-t-il autre chose qu'une clé SSH que je dois configurer pour cela?
netrc
'. Voir un exemple complet ici .Réponses:
Je pense que vous avez peut-être la mauvaise URL du référentiel Git.
Ouvrez
.git/config
et recherchez la section ["origine" distante]. Assurez-vous que vous utilisez celui SSH:Vous pouvez voir l'URL SSH dans la page principale de votre référentiel si vous cliquez sur Cloner ou télécharger et choisissez ssh .
Et PAS le
https
ou l'git
un:Vous pouvez maintenant valider avec juste la clé SSH au lieu du nom d'utilisateur et du mot de passe.
Si Git se plaint de cela
'origin' has already been added
, ouvrez le.config
fichier et éditez laurl = "..."
partie après[remote origin]
commeurl = ssh://github/username/repo.git
Il en va de même pour les autres services. Assurez-vous que l'adresse ressemble à:
protocol://something@url
Par exemple,
.git/config
pour Azure DevOps:la source
[remote "origin"]
section seturl = ssh://[email protected]/username/Repo.git
. Cela a fonctionné pour moi.url = [email protected]:organization/Repo.git
a fonctionné. +1 pour m'avoir conduit sur la bonne voie! Succès!Configuration de credential.helper
Sous OS X (maintenant macOS), exécutez-le dans terminal :
Il permet à Git d'utiliser le fichier Keychain.app pour stocker le nom d'utilisateur et le mot de passe et récupérer la phrase secrète de votre clé SSH privée à partir du trousseau.
Pour Windows, utilisez:
Dépannage
Si l'assistant d'informations d'identification Git est correctement configuré, macOS enregistre la phrase secrète dans le trousseau. Parfois, la connexion entre SSH et les phrases secrètes stockées dans le trousseau peut se rompre. Courir
ssh-add -K
oussh-add ~/.ssh/id_rsa
pour ajouter à nouveau la clé au trousseau.macOS v10.12 (Sierra) passe à ssh
Pour macOS v10.12 (Sierra),
ssh-add -K
doit être exécuté après chaque redémarrage. Pour éviter cela, créez~/.ssh/config
avec ce contenu.Depuis la
ssh_config
man
page du 10.12.2:Apple a ajouté la Technote 2449 qui explique ce qui s'est passé.
la source
.netrc
méthode de fichier qui met votre mot de passe en texte clair.'credential-osxkeychain' is not a git command.
car je n'ai pas installé l'assistant d'informations d'identification. J'ai suivi les instructions ici pour l'installer: help.github.com/articles/set-up-git#password-cachinggit config --global credential.helper osxkeychain
fichier config dans mon.ssh
répertoire m'a corrigé.Cela m'est arrivé lors de la mise à niveau vers macOS v10.12 (Sierra). Il semble que l'agent SSH ait été effacé lors de la mise à niveau.
En exécutant simplement
ssh-add
localisé mon identité existante. J'ai saisi le mot de passe et j'ai bien voulu y retourner.la source
Utilisez ceci: Remplacez github.com par le nom d'hôte approprié
la source
git remote -v
. Pourtant, on me demande toujours un mot de passe.git@**
ne demande pas d'informations d'identification et une URL avec lehttps@**
fait :). J'ai donc trouvé ce doc .Comme d'autres l'ont dit, vous pouvez installer un assistant de cache de mot de passe. Je voulais surtout publier le lien pour d'autres plates-formes, et pas seulement pour Mac. J'utilise un serveur Linux et cela m'a été utile: mettre en cache votre mot de passe GitHub dans Git
Pour Mac:
Les fenêtres:
Linux:
la source
Recherchez également qui vous demande la phrase secrète. Est-ce Git ou votre agent SSH?
Dans mon cas, chaque fois que je le faisais, je
git pull
me demandais:Enter passphrase for key '/work/username/.ssh/id_rsa':
J'ai donc supposé que c'était Git qui demandait une phrase secrète. J'ai donc continué à chercher des solutions, pour me rendre compte plus tard que mon agent SSH avait fermé ses portes. Qui peut être corrigé en utilisant
eval $(ssh-agent)
etssh-add
comme indiqué ici.Je colle également ci-dessous un petit extrait que vous pouvez ajouter à votre
~/.bashrc
fichier (ou l'équivalent) pour vous assurer que votre agent SSH est démarré lors de votre connexion.En tout cas, c'était une erreur assez idiote que j'ai commise, mais la poster ici, juste au cas où cela aiderait quelqu'un à gagner du temps en aboyant le mauvais arbre, comme je l'ai fait.
la source
SSH_ENV="$HOME/.ssh/environment"
Remarque: Bien que cela soit pratique, Git stockera vos informations d'identification en texte clair dans un fichier local (.git-credentials) sous le répertoire de votre projet (voir ci-dessous pour le répertoire "home"). Si vous n'aimez pas cela, supprimez ce fichier et passez à l'utilisation de l'option de cache.
Si vous souhaitez que Git recommence à vous demander des informations d'identification à chaque fois qu'il doit se connecter au référentiel distant, vous pouvez exécuter cette commande:
Pour stocker les mots de passe dans .git-credentials dans votre répertoire% HOME% par opposition au répertoire du projet: utilisez l'indicateur --global
la source
Guide de Git sur Windows et GitHub utilisant SSH pour pousser / tirer: Un guide illustré de Git sur Windows
la source
Dans Windows pour Git 1.7.9+, exécutez la commande suivante à l'invite de commandes pour ouvrir le fichier de configuration dans un éditeur de texte:
Ensuite, dans le fichier, ajoutez le bloc suivant s'il n'est pas présent ou modifiez-le en conséquence:
Enregistrez et fermez le fichier. Vous devrez fournir les informations d'identification une seule fois après la modification ci-dessus.
la source
Utilisez la commande suivante pour augmenter le délai d'expiration afin de pouvoir retaper le mot de passe pendant un certain temps
Je l'ai utilisé pour Bitbucket et GitHub, cela fonctionne pour les deux. La seule chose que vous devez faire
3600
est en quelques secondes. Augmentez-le autant que vous le souhaitez. Je l'ai changé en259200
environ 30 jours. De cette façon, je ressaisis mon mot de passe tous les 30 jours environ.la source
Je pense que vous avez résolu votre problème, mais je ne vois pas la solution ici qui m'a aidé, alors la voici.
Tapez dans le terminal:
Cela videra votre
known_hosts
fichier et vous devrez ajouter chaque hôte que vous avez utilisé et auquel vous vous êtes connecté, mais cela a résolu le problème.la source
cat /dev/null > ~/.ssh/known_hosts
fera de même.> ~/.ssh/known_hosts
est encore plus court :)J'ai l'impression que la réponse fournie par static_rtti est hacky dans un certain sens. Je ne sais pas si cela était disponible plus tôt, mais les outils Git fournissent désormais un stockage des informations d'identification.
Mode cache
Utilisez le mode «cache» pour conserver les informations d'identification en mémoire pendant un certain temps. Aucun des mots de passe n'est jamais stocké sur le disque et ils sont purgés du cache après 15 minutes.
Mode magasin
Utilisez le mode «store» pour enregistrer les informations d'identification dans un fichier texte en clair sur le disque, et elles n'expirent jamais.
J'ai personnellement utilisé le mode magasin . J'ai supprimé mon référentiel, je l'ai cloné, puis j'ai dû saisir mes informations d'identification une fois.
Référence: 7.14 Git Tools - Credential Storage
la source
credential.helper cache
ne fonctionne PAS. Ça devrait l'êtregit config --global credential.helper wincred
.git config --local credential.helper store
. Dans mon cas, je suis sur HTTPS, de cette façon, je ne tape le nom d'utilisateur / mot de passe qu'une seule fois et après cela, mes informations d'identification sont réutilisées à partir de ~ / .git-credentialsLa réponse d'Orkoden sur l'utilisation du trousseau avec Git dans votre terminal était incomplète et soulève des erreurs. Voici ce que vous devez faire pour enregistrer le nom d'utilisateur et le mot de passe que vous entrez dans le terminal de votre trousseau:
Entrez ensuite
Si vous avez déjà fait la partie avec la configuration Git avant le curl, ce n'est pas un problème; ça va marcher.
la source
Comme static_rtti l'a dit plus haut, changez
à
J'ai moi-même changé le
https
fichier .git / config enssh
, mais cela ne fonctionnait toujours pas. Ensuite, j'ai vu que vous devez changergithub.com
pour[email protected]
. Un bon moyen d'obtenir l'URL correcte est d'aller sur la page de votre projet et de cliquer sur ceci:Changez HTTPS en SSH pour obtenir la bonne URL
Ajoutez ensuite cette URL au fichier de configuration.
la source
Sur le sous-système Windows pour Linux (WSL), c'était la seule solution que j'ai trouvée pour fonctionner:
eval
`ssh-agent`; ssh-add ~/.ssh/id_rsa
C'était un problème avec l'agent ssh qui n'était pas correctement enregistré dans WSL.
la source
Si vous souhaitez empêcher Git de toujours vous demander les informations de connexion de votre référentiel GitHub, cela peut être facilement fait.
Utilisation de SSH au lieu de HTTPS
Vous pouvez mettre à jour la télécommande d'origine à l'aide de SSH au lieu de HTTPS "
Configurer Git pour stocker votre mot de passe et votre nom d'utilisateur
Voici comment vous pouvez faire en sorte que Git stocke le nom d'utilisateur et le mot de passe:
Ensuite, enregistrez le nom d'utilisateur et le mot de passe pour une session:
la source
Je suis d'accord avec "codehugger" et en utilisant l'instruction de "orkoden" cela a fonctionné pour moi - sur NetBeans 7.3 - lorsque vous cliquez avec le bouton droit sur le fichier et sélectionnez le menu contextuel - push - une fenêtre 'push to remote' ouverte - il y en a deux options ici:
origin:https://github.com/myaccount/myproject.git/
https://github.com/myaccount/myproject.git/
Comme vous pouvez le voir, la différence est le paramètre d'origine dans l'URL - vous ne voulez pas choisir cette option (1), vous voulez cocher l'option (2), et cela fonctionne très bien pour moi.
la source
Étape 1: vérifiez votre configuration actuelle
Tu auras:
Étape 2: supprimez votre origine distante
Étape 3: ajoutez à nouveau l'origine à distance avec votre nom d'utilisateur et votre mot de passe
la source
git branch --set-upstream master origin/master
Si Git vous demande un nom d'utilisateur et un mot de passe à chaque fois que vous essayez d'interagir avec GitHub, vous utilisez probablement l'URL de clonage HTTPS pour votre référentiel.
L'utilisation d'une URL distante HTTPS présente certains avantages: elle est plus facile à configurer que SSH et fonctionne généralement via des pare-feu et des proxy stricts. Cependant, il vous invite également à entrer vos informations d'identification GitHub chaque fois que vous tirez ou poussez un référentiel.
Vous pouvez configurer Git pour stocker votre mot de passe pour vous. Pour Windows :
la source
En exécutant macOS Cataline 10.15, la méthode de mise en cache du trousseau ne fonctionnait pas pour moi. Et je voulais utiliser
https://
nonssh
Voici ce qui a fonctionné pour moi:
Cela devrait aussi fonctionner sur GitLab
Assurez-vous que si le nom d'utilisateur contient une adresse e-mail, pour supprimer la
@email
pièce ou vous obtiendrez une erreur indiquantURL using bad/illegal format or missing URL
.J'espère que cela t'aides!
la source
Il existe différents types d'authentification selon votre configuration. Voici quelques-uns:
git credential-osxkeychain
.Si vos informations d'identification ne sont pas valides, supprimez-les en:
ou:
Git ne vous demandera donc plus l'autorisation de trousseau. Ensuite, configurez-le à nouveau.
Voir: Mettre à jour les informations d'identification à partir du trousseau OS X sur GitHub
Votre clé SSH RSA.
Pour cela, vous devez comparer votre clé SSH avec ce que vous avez ajouté, vérifiez par
ssh-add -L
/ssh-add -l
si vous utilisez la bonne identité.Votre authentification HTTPS (si vous utilisez
https
au lieu dessh
protocole).Utilisez
~/.netrc
(%HOME%/_netrc
sous Windows), pour fournir vos informations d'identification, par exempleEn savoir plus: Synchronisation avec GitHub à Stack Overflow.
la source
Avant de pouvoir utiliser votre clé avec GitHub, suivez cette étape dans le didacticiel, Test de votre connexion SSH :
la source
Avoir une faute de frappe dans l'URL fera que Git vous demandera un nom d'utilisateur et un mot de passe, stupide Git.
Il a été testé sur Kali Linux , Git version 2.7.0,
Essayer:
la source
Si vous utilisez Windows et que cela a soudainement commencé à se produire sur GitHub, c'est probablement en raison de la récente prise en charge de la désactivation par GitHub des algorithmes cryptographiques obsolètes le 2018-02-22, auquel cas la solution consiste simplement à télécharger et installer la dernière version du Git complet pour Windows ou simplement du Git Credential Manager pour Windows .
la source
Solution Microsoft Stack (Windows et Azure DevOps)
Ouvrez d'abord le
.git/config
fichier pour vous assurer que l'adresse ressemble à:Par exemple .git / config pour Azure DevOps:
Si le problème persiste, ouvrez le Gestionnaire d'informations d'identification Windows , cliquez sur le coffre-fort nommé Informations d' identification Windows et supprimez toutes les informations d'identification liées à git.
Maintenant, la prochaine fois que vous vous connecterez à git, il ne disparaîtra plus.
la source
Si vous avez configuré l'agent SSH, vous pouvez également l'ajouter à votre
~/.gitconfig
pour forcer git à utiliser SSH pour tous les dépôts GitHub plutôt que HTTPS:(Si vous travaillez principalement avec des dépôts publics, vous pouvez également utiliser
pushInsteadOf
plutôt queinsteadOf
, car la lecture à partir d'un référentiel public peut se faire sans authentification).la source