Git garde m'invite pour un mot de passe
J'ai été en utilisant Git pour un certain temps maintenant, mais les demandes constantes pour un mot de passe commence à me conduire dans le mur.
Je suis sur Mac OS X et GitHub, et je configurer Git et mes clés SSH comme indiqué par GitHub du Configurer Git page.
J'ai aussi ajouté le github de clé SSH à mon Mac OS X porte-clés, comme mentionné sur GitHub est la clé SSH de phrases de passe de la page. Ma clé est enregistrée avec Git.
Néanmoins, chaque fois que j'essaie de Git pull, je dois entrer mon nom d'utilisateur et mot de passe. Est-il autre chose qu'une clé SSH que j'ai besoin de mettre en place pour cela?
- Question bête, mais as-tu vérifié que la clé SSH fonctionne lorsqu'il est simplement à l'aide de ssh à la machine avec git?
- Tu veux dire quelque chose comme ssh -T [email protected] ? Oui, ça fonctionne très bien (même si un peu lent).
- Voir aussi Git push requiert le nom d'utilisateur et le mot de passe.
- Pour l'url https, vous pouvez utiliser (avec git1.8.3+) a git d'identification helper '
netrc
'. Voir un exemple complet ici. - Je suis un utilisateur de Windows, et j'ai été également confrontés à la demande de mot de passe problème, même après l'ajout de ma clé dans le fichier authorized_keys du serveur. Ce qui est vraiment le problème était que je n'étais pas garder mes clés publique/privée en vertu de l' .ssh dossier de c:\program files\git dossier. Si quelqu'un est confronté à un tel problème, s'il vous plaît copiez vos clés dans ce dossier et essayer de pousser/tirer.
- Définir l'url distante de la valeur dans le
.git/config
fichier du référentiel pour[email protected]:{username}/{repo}.git
où vous pouvez remplacer par votre propre nom d'utilisateur et le repo nom, évidemment. La réponse sélectionnée est flat-out incorrect. - Ce qui m'a aidé:
ssh -Tv [email protected]
(en remplacement de example.com avec votre GitLab de domaine) Essayez de pousser vos modifications. Si cela ne fonctionne toujours pas, essayez ceci:git remote rm origin; git remote add origin git@git.<domain>:<username>/<ProjectName>.git; git push -u origin --all; git push -u origin --tags;
Si cela ne fonctionne toujours pas, tentez d'ajouter la clé privée dans le site web. Dernière chose à essayer, ajouter la clé de bash:ssh-add id_rsa
- Vous pourriez avoir besoin pour configurer votre ordinateur avec une clé SSH et vous n'aurez pas besoin de constamment soumettre votre mot de passe chaque fois que vous appuyez sur le code.
Vous devez vous connecter pour publier un commentaire.
Je pense que vous pouvez avoir la mauvaise dépôt Git URL.
Ouvrir
.git/config
et de trouver le [remote "origine"] section. Assurez-vous d'utiliser le SSH un:Vous pouvez voir le SSH URL dans la page principale de votre dépôt si vous cliquez sur Clone ou télécharger et choisissez ssh.
Et PAS le
https
ougit
un:Vous pouvez maintenant valider avec juste la clé SSH à la place du nom d'utilisateur et mot de passe.
Si Git se plaint que
'origin' has already been added
, ouvrez le.config
fichier et modifier leurl = "..."
partie après[remote origin]
commeurl = ssh://github/username/repo.git
[remote "origin"]
sectionurl = ssh://[email protected]/username/Repo.git
. Ce qui a fonctionné pour moi.url = [email protected]:organization/Repo.git
a fait un travail. +1 pour m'avoir mis sur la voie de droite quand même!! Succès!.git/config
directement n'est pas recommandé quand il y a une commande git pour faire la même chose:git remote set-url origin [email protected]:account/repository
. La raison en est que vous risquez de corrompre le contenu de.git/config
.ssh://
préfixe pour le ssh github url. C'est, je l'ai simplement mis l'url de[email protected]:username/repo.git
[email protected]:username/repo.git
- ce pas une absurdité.Permission denied (publickey). fatal: Could not read from remote repository.
Configuration des informations d'identification.helper
Sur OS X (maintenant macOS), exécutez cette Terminal:
Il permet de Git pour utiliser un fichier Trousseau de clés.app store nom d'utilisateur et un mot de passe pour récupérer le mot de passe pour votre clé SSH de le trousseau de clés.
Pour Windows utilisation:
Dépannage
Si le Git d'informations d'identification d'aide est configuré correctement macOS enregistre le mot de passe dans le trousseau d'accès. Parfois, le la connexion entre SSH et les mots de passes stockés dans le trousseau d'accès peuvent se briser. Exécuter
ssh-add -K
oussh-add ~/.ssh/id_rsa
pour ajouter la clé keychain de nouveau.mac os v10.12 (Sierra) les changements de ssh
Pour mac os 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.De la
ssh_config
man
page sur 10.12.2:Apple a ajouté Technote 2449 qui explique ce qui s'est passé.
.netrc
méthode de fichiers qui met votre mot de passe en clair.'credential-osxkeychain' is not a git command.
que je n'ai pas les informations d'identification helper installé. J'ai suivi les instructions pour l'installer: help.github.com/articles/set-up-git#password-cachinggit config --global credential.helper wincred
git config --global credential.helper osxkeychain
Le fichier de config dans mon.ssh
répertoire fixe moi.ssh-add -K
faire cette correction du problème et a ajouté que le manque d'Identité de sauvegarde de Fichiers pour mac.Host *
peu, si vous mettez le reste dans le haut-niveau.ssh-add -K
avec la création de.ssh/config
fichier a fait le tour.Could not open a connection to your authentication agent.
Comment puis-je contourner cela?git config --global credential.helper cache
Ce qui m'est arrivé lorsque j'ai mis à niveau vers mac os v10.12 (Sierra). Ressemble à l'agent SSH ai effacé lors de la mise à niveau.
Tout simplement en train de
ssh-add
trouve mon identité. J'ai entré le mot de passe et il était bon d'aller à nouveau.Utiliser ceci: Remplacer github.com avec le nom d'hôte
git remote -v
. Pourtant, je suis encore invité pour un mot de passe.git@**
ne pas demander des informations d'identification et l'URL avechttps@**
n' :). Donc j'ai trouvé ce document.Comme d'autres l'ont dit, vous pouvez installer un cache de mot de passe helper. Plupart du temps, je voulais juste poster le lien pour d'autres plates-formes, et pas seulement Mac. Je suis sur un serveur Linux, et cela a été utile: La mise en cache de votre GitHub mot de passe dans Git
Pour Mac:
Windows:
Linux:
Aussi regarder pour qui vous demande le mot de passe. Est-il Git ou votre agent SSH?
Dans mon cas, chaque fois que j'ai
git pull
il a été de me demander:Enter passphrase for key '/work/username/.ssh/id_rsa':
J'ai donc supposé que c'était Git demandant un mot de passe. J'ai donc gardé la chasse pour des solutions, pour réaliser plus tard que mon agent SSH avait fermé ses portes. Qui peut être fixé à l'aide de
eval $(ssh-agent)
etssh-add
donnée ici.Aussi suis-coller ci-dessous un petit extrait de code que vous pouvez ajouter à votre
~/.bashrc
fichier (ou l'équivalent) pour vous assurer que votre agent SSH est lancé sur votre connexion.En tout cas, ce fut une assez stupide erreur que j'ai faite, mais le poster ici, juste au cas où il permet à quelqu'un de gagner du temps de aboiements le mauvais arbre, comme je l'ai fait.
Remarque: bien que ce soit pratique, Git va stocker vos informations d'identification en clair dans un fichier local (.git-pouvoirs), sous votre répertoire de projet (voir ci-dessous pour le répertoire "home"). Si vous n'aimez pas cela, supprimer ce fichier et passer à l'utilisation de l'option de cache.
Si vous voulez Git pour reprendre à vous demander des informations d'identification chaque fois qu'il doit se connecter sur le dépôt distant, vous pouvez exécuter cette commande:
Pour stocker les mots de passe .git-les informations d'identification dans votre %HOME% répertoire plutôt que dans le répertoire de projet: utiliser l'option --indicateur global
Guide de Git sur Windows et GitHub à l'aide de SSH pour push/pull: Un Guide Illustré de Git sur Windows
Utiliser la commande suivante pour augmenter le délai d'expiration, de sorte que vous pourrait retaper le mot de passe pour un tout
Je l'ai utilisé pour Bitbucket et GitHub, il fonctionne pour les deux. La seule chose que vous devez faire est de
3600
est en secondes. L'augmenter autant que vous le souhaitez. Je l'ai changé pour259200
qui est d'environ 30 jours. De cette façon, je re-rentre mon mot de passe tous les 30 jours.Dans Windows pour Git 1.7.9+, exécutez la commande suivante dans l'invite de commande pour ouvrir le fichier de configuration dans un éditeur de texte:
Puis dans le fichier, ajouter le bloc suivant si pas de présenter ou de les modifier en conséquence:
Enregistrez et fermez le fichier. Vous devrez fournir les informations d'identification qu'une seule fois après le changement ci-dessus.
Je suppose que vous résolu votre problème, mais je ne vois pas la solution ici, qui m'ont aidé, si elle est ici.
Tapez dans le terminal:
Qui vous vide de votre
known_hosts
de fichiers, et vous aurez à ajouter tous les hôtes que vous avez utilisé et connecté, mais il a résolu le problème.cat /dev/null > ~/.ssh/known_hosts
va faire la même chose.> ~/.ssh/known_hosts
est encore plus court 🙂Je sens que la réponse fournie par static_rtti est hacky dans un certain sens. Je ne sais pas si cela a été disponible plus tôt, mais Git outils de fournir des informations d'identification de stockage.
Mode Cache
Utiliser le mode dit “cache” pour conserver les informations d'identification dans la mémoire pendant une certaine période de temps. Aucun des mots de passe ne sont jamais stockées sur le disque, et ils sont effacés de la mémoire cache après 15 minutes.
Magasin De Mode
Utiliser la “boutique” mode pour enregistrer les informations d'identification à un fichier de texte brut sur le disque, et ils n'expirent jamais.
J'ai personnellement utilisé le magasin de mode. J'ai supprimé mon référentiel, cloné, puis a dû entrer mes identifiants une fois.
Référence: 7.14 Git Outils De Stockage D'Informations D'Identification
credential.helper cache
ne fonctionne PAS. Il devrait êtregit config --global credential.helper wincred
.orkoden de réponse sur l'utilisation de l'keychain avec Git dans votre terminal a été incomplète et déclenche des erreurs. C'est ce que vous avez à faire pour sauvegarder le nom d'utilisateur et le mot de passe que vous entrez dans le terminal dans votre trousseau de clés:
Puis entrez
Si vous avez déjà fait la partie avec Git configuration avant de l'curl trucs, ça ne pose aucun problème; il va travailler.
Étape 1: vérifiez votre configuration actuelle
Vous obtiendrez:
Étape 2: supprimer les de votre télécommande d'origine
Étape 3: ajouter la télécommande d'origine de retour avec votre nom d'utilisateur et le mot de passe
git branch --set-upstream master origin/master
Comme static_rtti dit ci-dessus, le changement
à
J'ai moi même changé le
https
dans le .git/config fichier àssh
, mais il n'était toujours pas de travail. Puis j'ai vu que vous doit changementgithub.com
à[email protected]
. Un bon moyen d'obtenir la URL pour accéder à votre page de projet et cliquez sur ce:Changement HTTPS, SSH pour obtenir la bonne URL
Puis ajoutez cette URL dans le fichier de configuration.
Je suis d'accord avec "codehugger" et en utilisant les instructions de la section "orkoden" il a travaillé pour moi - sur NetBeans 7.3 - lorsque vous cliquez-droit sur le fichier et sélectionnez le menu contextuel - push - push à distance " fenêtre ouverte - il existe 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 à l'origine de paramètre dans l'URL - vous ne voulez pas choisir cette option (1) vous voulez vérifier l'option (2), et qui fonctionne très bien pour moi.
Si Git vous invite à entrer un nom d'utilisateur et le mot de passe chaque fois que vous essayez d'interagir avec GitHub, vous êtes probablement en utilisant le HTTPS clone URL de votre dépôt.
À l'aide de HTTPS URL distante a quelques avantages: il est plus facile à configurer que SSH, et travaille généralement grâce à des pare-feu et les serveurs proxy. Cependant, il vous invite à saisir votre GitHub informations d'identification 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:
Il existe différents types d'authentifications en fonction de votre configuration. Voici quelques-unes:
git credential-osxkeychain
.Si votre justificatif d'identité n'est pas valide, le supprimer par:
ou:
Donc Git ne vous demandons pas pour le trousseau de la permission de nouveau. Puis le configurer à nouveau.
Voir: La mise à jour des informations d'identification de l'OS X Trousseau sur GitHub
Votre SSH de clés 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 le droit à l'identité.Votre authentification HTTPS (si vous utilisez
https
au lieu dessh
protocole).Utilisation
~/.netrc
(%HOME%/_netrc
sur Windows), pour fournir vos informations d'identification, par exempleEn savoir plus: La synchronisation avec GitHub à Pile Overflow.
Avant de pouvoir utiliser votre clé avec GitHub, suivez cette étape du tutoriel, Test de votre connexion SSH:
Avoir une faute de frappe dans l'URL fera Git vous demandant le nom d'utilisateur et le mot de passe, stupide imbécile.
Il a été testé sur Kali Linux, Git version 2.7.0,
Essayer:
Si vous utilisez Windows et cela a commencé soudainement passe sur du bleu sur GitHub, c'est probablement en raison de GitHub récente désactivation de prise en charge pour obsolète algorithmes cryptographiques sur 2018-02-22, auquel cas la solution est tout simplement de télécharger et d'installer la dernière version de l' Git pour Windows
ou tout simplement le Git Credential Manager pour Windows.
Sur sous-système Windows pour Linux (WSL), c'était la seule solution que j'ai trouvé du travail:
eval
`ssh-agent`; ssh-add ~/.ssh/id_rsa
C'était un problème avec la commande ssh-agent n'est pas correctement enregistré dans WSL.