Question Git n'arrête pas de me demander un mot de passe


J'utilise Git depuis un moment maintenant, mais les demandes constantes de mot de passe commencent à me remonter le moral.

J'utilise OSX et Github, et j'ai mis en place Git et mes clés SSH comme indiqué par GitHub Page Set Git . J'ai également ajouté la clé github SSH à mon trousseau Mac OSX, comme mentionné sur La page des mots de passe clés SSH de GitHub . Ma clé publique est enregistrée avec Git.

Néanmoins, chaque fois que j'essaie de tirer, 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 mettre en place pour cela?


505
2017-10-14 20:24


origine


Réponses:


Je pense que vous pouvez avoir la mauvaise URL de repo git.

Ouvrir .git/config et trouvez la section [remote "origin"]. Assurez-vous que vous utilisez le SSH un:

ssh://git@github.com/username/repo.git

Et pas le https ou git un:

https://github.com/username/repo.git
git://github.com/username/repo.git

Vous pouvez maintenant valider avec juste la SSH Key à la place du username et password.

[Modifier:] Si Git se plaint que 'origin' has already been added, ouvrez le .config déposer et éditer le url = "..." partie après [remote origin] comme url = ssh://github/username/repo.git


652
2017-10-14 21:10



Configuration de credential.helper

Sous OS X (maintenant MacOS), lancez ceci dans le terminal

git config --global credential.helper osxkeychain

Il permet à git d'utiliser Keychain.app pour stocker le nom d'utilisateur et le mot de passe et de récupérer la phrase secrète à votre clé privée ssh à partir du trousseau.

Pour les fenêtres, utilisez:

git config --global credential.helper wincred

Dépannage

Si l'assistant d'identification git est correctement configuré, macOS enregistre la phrase secrète dans le trousseau. Parfois l connexion entre ssh et les phrases secrètes stockées dans le trousseau peut casser Courir ssh-add -K ou ssh-add ~/.ssh/id_rsa pour ajouter à nouveau la clé au trousseau.

macOS 10.12 Sierra change en SSH

Pour macOS 10.12 Sierra ssh-add -K doit être exécuté après chaque redémarrage. Pour éviter cela créer ~/.ssh/config avec ce contenu.

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

Du ssh_config  man page 10.12.2:

UseKeychain

Sur macOS, spécifie si le système doit rechercher les phrases secrètes dans le trousseau de l'utilisateur lorsque vous tentez d'utiliser une clé particulière. Lorsque la phrase secrète est fournie par l'utilisateur, cette option spécifie également si le mot de passe doit être stocké dans le trousseau une fois qu'il a été vérifié qu'il est correct. L'argument doit être «oui» ou «non». La valeur par défaut est "non".

Apple a ajouté Technote 2449 ce qui explique ce qui s'est passé.

Avant macOS Sierra, ssh présenterait une boîte de dialogue demandant votre phrase secrète et offrirait la possibilité de la stocker dans le trousseau. Cette interface utilisateur était obsolète depuis longtemps et a été supprimée.


481
2017-07-11 08:44



Cela m'est arrivé quand je suis passé à macOS Sierra. On dirait que l'agent SSH a été effacé lors de la mise à niveau.

$ ssh-add -L
The agent has no identities.

Simplement en cours d'exécution ssh-add situé mon identité existante, entré le mot de passe et bon d'y retourner.


107
2017-09-21 12:17



Utilisez ceci: Remplacez github.com par le nom d'hôte approprié

git remote set-url origin git@github.com:user/repo.git

57
2018-02-22 22:48



Comme d'autres l'ont dit, vous pouvez installer un assistant de cache de mot de passe. Je voulais surtout juste poster le lien pour d'autres plateformes, et pas seulement mac. Je cours un serveur de Linux et ceci a été utile: https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

Pour Mac:

git credential-osxkeychain

Les fenêtres:

git config --global credential.helper wincred

Linux:

git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

29
2018-02-12 20:42



Guide de git sur Windows et Github en utilisant SSH pour pousser / tirer http://nathanj.github.io/gitguide/tour.html

  1. Téléchargez et installez le mastic
  2. Définissez la variable d'environnement 'GIT_SSH' = 'path \ to \ plink.exe' (dans le dossier putty installé) - TRÈS IMPORTANT !!!
  3. REDÉMARRER WINDOWS EXPLORER pour que les variables Env prennent effet (impossible de redémarrer l'invite de commande)
  4. Exécutez puttygen.exe pour générer une nouvelle clé, copiez la clé publique sur le site Github
  5. Sauvegardez cette nouvelle clé privée dans un endroit sûr sur le disque (de préférence pas dropbox)
  6. Exécutez putty.exe et connectez SSH à github.co
  7. Accédez rapidement au dossier de démarrage en exécutant "shell: startup". Faites votre démarrage de clé privée avec Windows via Pageant. Créer un raccourci dans le dossier de démarrage avec la syntaxe "chemin \ à \ pageant.exe" "chemin \ à \ privatekey"
  8. Nous n'avons pas besoin de mettre le paramètre 'puttykeyfile' à l'intérieur de .git / config de notre repos
  9. TRÈS IMPORTANT: le "SSH clone URL" de Github est utilisé et non Https

8
2017-10-29 15:07



Recherchez également qui vous demande la phrase secrète. Est-ce git ou votre agent SSH?

Dans mon cas, chaque fois que je l'ai fait git pull il me demandait:

Enter passphrase for key '/work/username/.ssh/id_rsa':

Donc j'ai supposé que c'était git demandant un mot de passe. J'ai donc continué à chercher des solutions, pour me rendre compte plus tard que mon agent SSH s'était arrêté. Qui peut être fixé comme donné ici.

C’est une erreur assez stupide que j’ai faite, mais l’a posté ici, juste au cas où cela aiderait une personne à gagner du temps en abandonnant le mauvais arbre, comme je l’ai fait.


7
2017-08-23 02:48



Dans Windows pour git 1.7.9+, exécutez la commande suivante dans l'invite de commande pour ouvrir le fichier de configuration dans l'éditeur de texte:

    git config --global --edit

Puis dans le fichier ajoutez le bloc suivant s'il n'est pas présent ou modifiez-le en conséquence

    [credential "https://giturl.com"]
        username = <user id>
        helper = wincred

Enregistrez et fermez le fichier. Vous devrez fournir les références seulement une fois après le changement ci-dessus.


6
2018-04-13 01:32