Git continue de me demander un mot de passe

665

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?

Catherine
la source
1
Question idiote, mais avez-vous vérifié que la clé SSH fonctionne lorsque vous utilisez simplement ssh sur la machine avec git?
Kurt Stutsman
4
Vous voulez dire quelque chose comme ssh -T [email protected]? Ouais, ça marche très bien (même si c'est un peu lent).
Catherine
Pour l'URL https, vous pouvez utiliser (avec git1.8.3 +) un assistant d'identification git ' netrc'. Voir un exemple complet ici .
VonC
Je suis un utilisateur Windows et j'étais également confronté à un problème de demande de mot de passe même après avoir ajouté ma clé publique au fichier authorized_keys du serveur. Le problème était que je ne gardais pas mes clés publiques / privées dans le dossier .ssh du dossier c: \ program files \ git. Si quelqu'un est confronté à un tel problème, veuillez copier vos clés dans ce dossier et essayer de pousser / tirer.
Raja Amer Khan

Réponses:

797

Je pense que vous avez peut-être la mauvaise URL du référentiel Git.

Ouvrez .git/configet recherchez la section ["origine" distante]. Assurez-vous que vous utilisez celui SSH:

ssh://[email protected]/username/repo.git

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 httpsou l' gitun:

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

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 .configfichier et éditez la url = "..."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/configpour Azure DevOps:

[remote "origin"]
    url = https://[email protected]/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*
static_rtti
la source
4
C'est peut-être ça. Lorsque j'appelle git remote -v, j'obtiens: origin github.com/Foo/Bar.git (fetch) origin github.com/Foo/Bar.git (push) alors que pour travailler avec SSH, il semble que ce devrait être: origin git @ github.com: Foo / Bar.git (fetch) origin [email protected]: Foo / Bar.git (push) Cela peut être dû au fait que j'ai à l'origine extrait mon projet en utilisant l'application Mac de GitHub ( mac.github.com ). Une idée comment je peux le réparer?
Catherine
8
Corrigez l'URL dans le fichier .git / config, utilisez git-remote pour le corriger, ou supprimez votre dépôt local et clonez-le à nouveau avec l'URL correcte.
static_rtti
91
Juste pour le préciser (comme j'en avais besoin): ouvrez .git / config et dans la [remote "origin"]section set url = ssh://[email protected]/username/Repo.git. Cela a fonctionné pour moi.
Greg K
13
Odd, la solution de @ GregK n'a pas fonctionné pour moi, mais url = [email protected]:organization/Repo.gita fonctionné. +1 pour m'avoir conduit sur la bonne voie! Succès!
jmort253
3
Je ne saurais trop insister sur l'importance de CLONER en utilisant ssh: // git @ github / [username] / [reponame] .git est que vous voulez utiliser une clé pour accéder à GIT pas besoin de taper votre nom d'utilisateur et votre mot de passe à chaque fois . J'ai trouvé que le seul moyen de le corriger était de supprimer le dépôt local et de cloner à nouveau $ git clone ssh: // git @ github / [username] / [reponame] .git
Gene Myers
555

Configuration de credential.helper

Sous OS X (maintenant macOS), exécutez-le dans terminal :

git config --global credential.helper osxkeychain

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:

git config --global credential.helper wincred

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. Courirssh-add -K ou ssh-add ~/.ssh/id_rsapour ajouter à nouveau la clé au trousseau.

macOS v10.12 (Sierra) passe à ssh

Pour macOS v10.12 (Sierra), ssh-add -Kdoit être exécuté après chaque redémarrage. Pour éviter cela, créez ~/.ssh/configavec ce contenu.

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

Depuis la ssh_config manpage du 10.12.2:

UseKeychain

Sous macOS, spécifie si le système doit rechercher des phrases secrètes dans le trousseau de l'utilisateur lorsqu'il tente d'utiliser une clé particulière. Lorsque la phrase secrète est fournie par l'utilisateur, cette option spécifie également si la phrase secrète doit être stockée dans le trousseau une fois qu'elle a été vérifiée pour être correcte. L'argument doit être «oui» ou «non». La valeur par défaut est «non».

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

Avant macOS Sierra, sshprésenterait une boîte de dialogue vous demandant votre phrase secrète et offrirait la possibilité de la stocker dans le trousseau. Cette interface utilisateur a été déconseillée il y a quelque temps et a été supprimée.

orkoden
la source
30
C'est de loin le meilleur moyen de le faire, car l'application Github pour OSX (peut-être aussi Windows) utilise le chemin https pour git repos par défaut. Il existe également une bonne raison d'utiliser https plutôt que ssh / git car de nombreux réseaux d'entreprise autorisent uniquement le trafic sur les ports 80 et 443 pour des raisons de sécurité.
codehugger
2
Vous avez besoin de git 1.7.10 ou plus récent pour utiliser l'assistant d'informations d'identification.
jbandi
3
+1 pour la solution keychain.app. C'est génial pour moi car le serveur git de mon employeur ne prend en charge que http servi via apache et il décourage fortement d'utiliser la .netrcméthode de fichier qui met votre mot de passe en texte clair.
Josh
3
Remarque, j'ai eu l'erreur '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-caching
Hugh
2
Merci pour la mise à jour de Sierra, je viens de mettre à jour et je ne pouvais pas comprendre pourquoi github continuait à demander pw lorsque j'ai ajouté le git config --global credential.helper osxkeychainfichier config dans mon .sshrépertoire m'a corrigé.
pixel 67
139

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.

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

En exécutant simplement ssh-addlocalisé mon identité existante. J'ai saisi le mot de passe et j'ai bien voulu y retourner.

amcc
la source
9
+1 cassé par la mise à niveau de Sierra. Notez que le mot de passe est le mot de passe de votre clé SSH et non votre mot de passe utilisateur Mac.
mbonness
1
Faire ssh-add fonctionne mais semble être réinitialisé en fermant la fenêtre Terminal. C'est peut-être une nouvelle "fonctionnalité".
joshd
Attention - cela s'est reproduit avec une autre mise à jour de Sierra (10.12.2) mais le même correctif s'applique.
Brian
Est-ce que quelqu'un sait comment faire en sorte que cela ne soit pas réinitialisé après la fermeture du terminal?
nickjwallin
1
Je venais de mettre à jour mon macbook pro en 10.12.2 et cela a cassé mon git. L'utilisation de ssh-add a totalement fonctionné pour moi. Merci @amcc!
jimmyplaysdrums
68

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

git remote set-url origin [email protected]:user/repo.git
Darrell Duane
la source
Je l'ai déjà réglé lors de la visualisation git remote -v. Pourtant, on me demande toujours un mot de passe.
IgorGanapolsky
Idem, j'ai défini ce qu'il a suggéré, mais je reçois toujours un mot de passe, comment puis-je empêcher cela?
cyber8200
@IgorGanapolsky: Avez-vous déjà trouvé une solution pour vous?
cyber8200
1
Cela fonctionne correctement. C'est bizarre qu'une URL distante avec git@**ne demande pas d'informations d'identification et une URL avec le https@**fait :). J'ai donc trouvé ce doc .
Sujit Kumar Singh
54

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:

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)
Chase Roberts
la source
5
J'ai dû faire défiler jusqu'à la troisième réponse pour voir les instructions Linux, celles-ci devraient être dans la réponse principale car il s'agit d'un problème couramment référencé.
KoldBane
22

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 pullme 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)et ssh-addcomme 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.

# Start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."

    # Spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi

mithunpaul
la source
Je suis sûr que vous manquez une ligne dans le code ci-dessus - selon stackoverflow.com/a/18915067/277023 que vous devez avoirSSH_ENV="$HOME/.ssh/environment"
kellyfj
20
git config credential.helper store

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:

git config --unset credential.helper

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

git config --global credential.helper store
Lokesh S
la source
9

Guide de Git sur Windows et GitHub utilisant SSH pour pousser / tirer: Un guide illustré de Git sur Windows

  1. Téléchargez et installez PuTTY
  2. Définissez la variable d'environnement 'GIT_SSH' = 'chemin \ vers \ plink.exe' (dans le dossier de mastic installé) - très important !!!
  3. Redémarrez l'Explorateur Windows pour que les variables d'environnement prennent effet (ne peut pas seulement 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. Enregistrez 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".
  8. Faites votre démarrage de clé privée avec Windows via pageant. Créez un raccourci dans le dossier de démarrage avec la syntaxe "path \ to \ pageant.exe" "path \ to \ privatekey"
  9. Nous n'avons pas besoin de définir le paramètre «puttykeyfile» dans .git / config de nos référentiels
  10. Il est très important que l '"URL du clone SSH" de GitHub soit utilisée et non HTTPS.
François
la source
Personne ne devrait plus utiliser de mastic. Vous pouvez tout faire maintenant avec les utilitaires Windows 10 intégrés. Que le mastic soit juste du mastic.
Ian Smith
9

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:

    git config --global --edit

Ensuite, 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 informations d'identification une seule fois après la modification ci-dessus.

Rohan
la source
cela fonctionne parfaitement, vous avez économisé mes heures, maintenant je peux me concentrer sur mon travail, merci beaucoup, frère.
Mohammed Sufian
9

Utilisez la commande suivante pour augmenter le délai d'expiration afin de pouvoir retaper le mot de passe pendant un certain temps

git config --global credential.helper 'cache --timeout 3600'

Je l'ai utilisé pour Bitbucket et GitHub, cela fonctionne pour les deux. La seule chose que vous devez faire 3600est en quelques secondes. Augmentez-le autant que vous le souhaitez. Je l'ai changé en 259200environ 30 jours. De cette façon, je ressaisis mon mot de passe tous les 30 jours environ.

Ravi Kumar
la source
1
Ok, j'ai trouvé que cela ne persistait pas après un redémarrage, donc vous devez toujours entrer le mot de passe après un redémarrage, quel que soit le délai d'expiration ...
Ben Winding
C'est une belle façon de faire en cache :) Au moins, j'ai économisé mon temps. Merci
ChikuMiku
@BenWinding car il stocke les informations d'identification en mémoire.
z3dd
5

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:

echo "" > ~/.ssh/known_hosts

Cela videra votre known_hostsfichier 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.

papan
la source
1
cat /dev/null > ~/.ssh/known_hostsfera de même.
The Tin Man
5
> ~/.ssh/known_hostsest encore plus court :)
Collin Allen
rm ~ / .ssh / known_hosts devrait également faire le travail. Je déconseille cependant cela.
orkoden
3
Si vous devez supprimer un hôte de ~ / .ssh / known_hosts, il existe un moyen moins percutant que d'effacer le fichier. ~ / .ssh / known_hosts est juste un fichier texte et si vous pouvez trouver les hôtes incriminés dans le fichier, vous pouvez simplement supprimer leurs lignes. Vous souhaiterez peut-être sauvegarder le fichier avant de le modifier. Si vous n'avez que quelques entrées dans le fichier, l'effacer n'est peut-être pas une mauvaise idée. Je travaille sur de nombreux serveurs, donc mon ~ / .ssh / known_hosts contient des centaines d'entrées et je ne suis pas tout à fait prêt à les supprimer tous pour supprimer quelques entrées.
Tim Stewart
3
@papan Cela n'empêche pas git de me demander mon mot de passe!
IgorGanapolsky
5

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

$ git config --global credential.helper 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

$ git config --global credential.helper 'store --file ~/.my-credentials'

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

Ducktales
la source
Pour Windows credential.helper cachene fonctionne PAS. Ça devrait l'être git config --global credential.helper wincred.
Paulo Merson
Le stockage a fonctionné et maintenant il me permet de valider mes modifications sans demander de mot de passe tout le temps, vous êtes une bouée de sauvetage!
g4ost
Sous Linux, cela a fait le travail pour moi 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-credentials
CCarlos
3

La 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:

curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
sudo mv git-credential-osxkeychain /usr/local/bin
sudo chmod u+x /usr/local/bin/git-credential-osxkeychain

Entrez ensuite

git config --global credential.helper osxkeychain

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.

Lukas
la source
1
Et si je suis sur Linux.
IgorGanapolsky
3

Comme static_rtti l'a dit plus haut, changez

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

à

ssh://[email protected]/username/repo.git

J'ai moi-même changé le httpsfichier .git / config en ssh, mais cela ne fonctionnait toujours pas. Ensuite, j'ai vu que vous devez changer github.compour [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.

CheesusCrust
la source
Je l'ai déjà dans mon fichier de configuration de config, que dois-je vérifier d'autre?
cyber8200
L'avez-vous également modifié sur github.com?
CheesusCrust
3

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.

James Gentes
la source
Été whlie, mais c'est ce qui a résolu mon problème.
Nam Kim
3

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 "

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

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:

git config --global credential.helper store

Ensuite, enregistrez le nom d'utilisateur et le mot de passe pour une session:

git config --global credential.helper cache
Ahmed Bouchefra
la source
2

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:

  1. origin:https://github.com/myaccount/myproject.git/

  2. 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.

Fumier
la source
2

Étape 1: vérifiez votre configuration actuelle

cat .git/config

Tu auras:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/path_to_your_git.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = your_username
    email = your_email
[branch "master-staging"]
    remote = origin
    merge = refs/heads/master-staging

Étape 2: supprimez votre origine distante

git remote rm origin

Étape 3: ajoutez à nouveau l'origine à distance avec votre nom d'utilisateur et votre mot de passe

git remote add origin https://your_git_username:[email protected]/path_to_your_git.git
Haimei
la source
Après avoir ajouté à nouveau l'origine distante, vous devez également aligner vos branches distantes et locales - quelque chose comme ceci: git branch --set-upstream master origin/master
Richard Bown
2

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 :

git config --global credential.helper wincred
Emiliano Schiano
la source
2

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:

git remote rm origin

git remote add origin https://your_git_username:[email protected]/path_to_your_git.git

Cela devrait aussi fonctionner sur GitLab

Assurez-vous que si le nom d'utilisateur contient une adresse e-mail, pour supprimer la @emailpièce ou vous obtiendrez une erreur indiquantURL using bad/illegal format or missing URL .

J'espère que cela t'aides!

ICeZer0
la source
1
C'est la SEULE solution qui a fonctionné pour moi. votre_nom_utilisateur_git était critique. Il n'était en fait pas nécessaire de mettre: your_git_password. À ce stade, même s'il demandait toujours une "phrase secrète", il accepterait désormais le mot de passe du compte.
kbulgrien
1

Il existe différents types d'authentification selon votre configuration. Voici quelques-uns:

  1. git credential-osxkeychain.

    Si vos informations d'identification ne sont pas valides, supprimez-les en:

      git credential-osxkeychain erase
    

    ou:

      printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
    

    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

  2. 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 -lsi vous utilisez la bonne identité.

  3. Votre authentification HTTPS (si vous utilisez httpsau lieu dessh protocole).

    Utilisez ~/.netrc( %HOME%/_netrcsous Windows), pour fournir vos informations d'identification, par exemple

      machine stash1.mycompany.com
      login myusername
      password mypassword
    

En savoir plus: Synchronisation avec GitHub à Stack Overflow.

kenorb
la source
1

Avant de pouvoir utiliser votre clé avec GitHub, suivez cette étape dans le didacticiel, Test de votre connexion SSH :

$ ssh -T git@github.com
# Attempts to ssh to GitHub
Jonny
la source
0

Solution Microsoft Stack (Windows et Azure DevOps)

Ouvrez d'abord le .git/configfichier pour vous assurer que l'adresse ressemble à:

protocol://something@url

Par exemple .git / config pour Azure DevOps:

[remote "origin"]
    url = https://[email protected]/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

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.

Bizhan
la source
0

Si vous avez configuré l'agent SSH, vous pouvez également l'ajouter à votre ~/.gitconfigpour forcer git à utiliser SSH pour tous les dépôts GitHub plutôt que HTTPS:

[url "ssh://[email protected]/"]
    insteadOf = git://github.com/
    insteadOf = https://github.com/

(Si vous travaillez principalement avec des dépôts publics, vous pouvez également utiliser pushInsteadOfplutôt que insteadOf, car la lecture à partir d'un référentiel public peut se faire sans authentification).

nyuszika7h
la source