github: aucune méthode d'authentification prise en charge disponible

j'utilise github et j'ai réussi à ajouter et synchroniser des fichiers sur mon ordinateur portable dans le passé.

depuis peu j'ai commencé à recevoir " erreur fatale PuTTY: déconnecté: aucune méthode d'authentification supportée disponible "après l'exécution:

git pull origin master (ou pousser)

cependant

ssh [email protected] renvoie la réponse correcte: Erreur: Hi username! Vous avez réussi à authentifié, mais GitHub ne fournit pas d'accès shell Connexion avec github.com fermé.

après avoir creusé autour de github j'ai trouvé ce morceau:

Aucune prise en charge des méthodes d'authentification disponibles Vous devez être conscient de la variable D'environnement GIT_SSH, qui est utilisée par GIT pour trouver votre client parlant ssh, si ssh ne fonctionne pas pour vous. L'installation de git peut utiliser plink.exe (via GIT_SSH) pour effectuer l'authentification. Si oui, assurez-vous d'avoir spectacle.exe running, et la clé que vous avez créée pour github chargée dedans. Cela fournit la clé pour plink.exe; sans elle, l'erreur ci-dessus se produisent.

Je ne suis pas sûr de ce que plink.exe ou peagant.l'exe l'est.. et le fait que ssh [email protected] semble s'authentifier correctement me fait me demander Quelle est la meilleure solution ici est.. Je ne veux certainement pas compliquer mon installation si ce n'est pas nécessaire.

85
demandé sur Rex Morgan 2010-08-07 21:11:02
la source

14 ответов

, Vous pouvez créer un fichier nommé ".profil" dans votre répertoire personnel, pour moi c'est C:\Users\[user]

dans ce fichier, mettez la ligne de code suivante:

GIT_SSH="/usr/bin/ssh.exe"

définit la variable D'environnement GIT_SSH pour utiliser le client SSH inclus avec Git.

The .le script de profil est exécuté lorsque vous démarrez votre ligne de commande Git Bash.

Edit: C'est mon .profil. Il va vous demander votre mot de passe la première fois que vous lancez l'invite de commande git, puis vous vous en souviendrez à partir de là, jusqu'à ce que vous redémarriez votre ordinateur. Très pratique pour ne pas avoir à entrer votre mot de passe chaque fois que vous voulez faire quelque chose.

SSH_ENV="$HOME/.ssh/environment"
GIT_SSH="/usr/bin/ssh.exe"

function start_agent {
echo "Initializing new 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;
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cygwin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
87
répondu Rex Morgan 2010-12-09 03:03:35
la source

À L'Aide De TortoiseGit

mettre TortoiseGit > paramètres > réseau > Client SSH à C:\Program Files (x86)\Git\bin\ssh.exe ou C:\Program Files\Git\usr\bin\ssh.exe

tortoisegit

16
répondu Joseph Dykstra 2016-08-03 02:08:21
la source

"... pas sûr de ce que plink.exe ou peagant.l'exe l'est ..."

puisque vous demandez: plink & pageant font partie de la suite PuTTY, qui est une implémentation de SSH qui supporte Linux & Windows et est complètement dominant sur Windows.

SSH

Secure Shell (SSH) est un protocole de réseau cryptographique pour sécuriser données communication. Il établit un canal sécurisé sur l'insécurité réseau dans une architecture client-serveur, connectant un client SSH application avec un serveur SSH. Les applications communes comprennent la télécommande connexion en ligne de commande, Exécution de commande à distance, mais tout service réseau peut être sécurisé avec SSH.

si vous avez déjà utilisé Telnet, c'est comme ça (mais plus sûr): cela vous permet d'accéder à distance au shell bash (ligne de commande) d'un hôte Linux.

Mastic

PuTTY est un émulateur de terminal libre et open-source, console série et réseau de transfert de fichiers. Il prend en charge plusieurs réseaux protocoles, y compris SCP, SSH, Telnet, rlogin ...

sous Windows c'est le logiciel dominant pour accéder à distance à la ligne de commande D'un hôte Linux sous le protocole SSH (ci-dessus). Dans Windows, Les .les extensions exe sont pour les fichiers exécutables. Donc ces notes sur plink.exe & concours.exe probablement ne s'applique pas si vous êtes sous Linux . PuTTY inclut

Plink : une interface en ligne de commande vers les PuTTY back ends

Pageant : un agent d'authentification SSH pour PuTTY, PSCP et Plink

de ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )

lorsque la clé publique est présente à l'extrémité distante et la correspondance la clé privée est présente à l'extrémité locale, taper le mot de passe n'est pas plus nécessaire ... pour plus de sécurité la clé privée lui-même peut être verrouillé avec une phrase de passe.

ainsi github est hébergé sur une machine Linux et utilise SSH pour sécuriser la connexion. SSH soit authentifie avec des mots de passe ou des clés, de nombreux hôtes (github?) authentifier avec les touches. Vous essayez apparemment de vous authentifier avec une clé. Les clés et les hôtes ne sont pas un pour un: vous pouvez avoir deux clés pour le même hôte et/ou deux hôtes pour la même clé, ils doivent donc être gérés. Si vous êtes dans Windows, alors votre session SSH est probablement accessible via plink et vos clés sont probablement gérées par Pageant.

importez la clé dont vous avez besoin chaque fois que vous chargez un spectacle. Si vous avez suivi les guides qui disaient "importez votre clé", et vous avez vu que ça marchait, mais ça ne marche pas maintenant, Voir Chapitre 9: utilisation de Pageant pour l'authentification .

un dernier conseil si vous êtes sur Windows: vous pouvez avoir plusieurs instances de la suite PuTTY installées par divers outils. TortoiseGit, par exemple, installe le sien.

10
répondu woodvi 2017-04-13 15:22:38
la source

j'ai éprouvé ce problème parce que mon GIT_SSH pointait vers la version TortoiseSVN de Plink.exe . Je l'ai changé pour pointer vers la version TortoiseGit, j'ai redémarré cmd et ça a marché.

Je ne me souviens pas exactement, mais la version TortoiseSVN aurait pu être une version 32 bits, et la version TortoiseGit était 64 bits (situé dans Program Files , pas Program Files (x86) ).

revérifiez votre GIT_SSH env var.

I préfèrent utiliser git avec normal cmd.exe (dans Console2 bien sûr)

8
répondu vaughan 2011-10-11 17:14:45
la source

mon problème était que je tentais d'utiliser mon nom d'utilisateur github. Apparemment en utilisant Github (ou est-ce une chose Git?) , si vous utilisez l'authentification par clé, vous devez définir votre nom d'utilisateur à git .

Je ne sais pas pourquoi vous avez même besoin d'un nom d'utilisateur du tout - peut-être quelqu'un de mieux informé peut expliquer cela?

4
répondu BlueRaja - Danny Pflughoeft 2013-11-05 21:15:01
la source

pour les utilisateurs TortoiseGit sur Windows

à l'origine, j'avais l'habitude de configurer la plupart de mes dépôts GitHub/Bitbucket en utilisant les URLs du dépôt ssh comme (à l'origine) il était le seul moyen pratique d'empêcher TortoiseGit de demander votre mot de passe sur chaque action simple.

mais placer TortoiseGit de cette façon a toujours été très douloureux. Chaque fois il m'a fallu heures pour configurer correctement, car les options d'installation par défaut ne semblaient jamais fonctionner (même à partir de 2016, sheesh!).

mais TortoiseGit a maintenant une meilleure gestion des mots de passe pour HTTPS, et GitHub recommande en fait d'utiliser les URLs de HTTPS dans la mesure du possible.

SSH URL: [email protected]:User/repo-name.git

HTTPS URL: https://github.com/User/repo-name.git

Les avantages de HTTPS sont:

  • Pas de la gestion ou de la génération de clés SSH
  • Pas besoin d'avoir pageant.exe constamment en cours d'exécution (qui demande votre mot de passe à chaque lancement)
  • en utilisant TortoiseGit D'Australie, je trouve que les clones sur HTTPS sont 5-10x plus rapides que SSH
4
répondu Simon East 2016-06-20 11:32:30
la source

si vous utilisez Pageant et que vous obtenez l'erreur décrite dans la question après avoir redémarré votre PC (ou autrement fermer et rouvrir Pageant):

L'erreur peut être causée par le fait que votre clé GitHub SSH n'est pas chargée. par défaut, Pageant ne charge pas automatiquement les clés de la session précédente lorsqu'elle démarre.

pour charger la clé:

  1. Concours Ouvert. (Sur Windows, si le concours est en cours, il y aura une icône dans le bac du système. Double-cliquez qui.)
  2. cliquez sur le bouton Ajouter une clé, et procédez à l'ajout de votre clé GitHub SSH existante.

pour éviter ce problème À l'avenir, vous pouvez configurer Concours pour charger automatiquement votre clé quand il démarre. (Pageant vous demandera automatiquement un mot de passe si votre clé est protégée par un mot de passe.)

étapes pour ce faire (en supposant vous avez déjà configuré Pageant pour exécuter lorsque Windows démarre):

  1. trouver le raccourci utilisé par Windows pour lancer le concours lorsque Windows commence. (Il peut être dans le dossier de démarrage, qui peut être ouvert par Start > Run > shell:startup )
  2. dans la boîte de dialogue Propriétés du raccourci, ajoutez le chemin complet et le nom du fichier de clés SSH au champ" Cible".

référence et tous les détails: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html

3
répondu Jon Schneider 2016-06-15 17:51:01
la source

Sur mon ordinateur Windows 7 de course Github pour Windows à l'aide de git version 1.8.3.msysgit.0. J'ai trouvé que la mise à jour de la variable D'environnement de mon système GIT_SSH à C:\Program fichiers (x86)\Git\bin\ssh.exe semblait faire l'affaire. Cela a aussi réglé mon problème avec le fait de contacter la git repo D'OpenShift.

2
répondu atorres757 2013-07-18 07:18:14
la source

même erreur, solution différente notée ici - problème de connexion à GitHub sur Windows, même via PuTTY

1
répondu Wayne Bloss 2017-05-23 13:31:17
la source

j'ai rencontré ce même problème, cependant la solution GIT_SSH a semblé fonctionner une fois pour moi. Après un redémarrage de l'ordinateur, j'ai réalisé que c'était autre chose, car j'ai pu cloner mes dépôts privés sans problème en utilisant Git Bash ou L'invite de commande, mais pas dans Sublime Text 3 avec le plugin SublimeGit. Ma solution était simple et est en fait ce que @BlueRaja - Danny Pflughoeft mentionné mais j'ai pensé qu'il pourrait utiliser une certaine direction ;)

Fondamentalement, vous avez juste besoin d'éditer ~/.ssh/config et de s'assurer que le nom d'utilisateur est git . Vous pouvez également lui dire d'utiliser une clé SSH spécifique pour Github -- mon fichier ~/.ssh/config ressemble à ce qui suit:

Host gh
    Hostname github.com
    User git
    IdentityFile ~/.ssh/github_rsa.pub

j'ai une clé spécifique pour Github en raison du nombre d'autres choses que je fais tout au long de ma journée, mais si vous avez seulement un, alors il sera généralement ~/.ssh/id_rsa.pub comme GitHub explique ici .

je sais que tout le monde a un solution différente, mais je vais laisser ceci ici pour quiconque peut rencontrer cet article sans une solution. Bonne chance!

1
répondu Winter 2017-05-23 15:02:40
la source

j'ai eu cette erreur en utilisant TortoiseGit pour cloner un dépôt de GitHub. Corrigé en cliquant sur" Load Putty Key " et en sélectionnant un fichier clé (*.pkk) dans le dialogue Git clone.

1
répondu Zymotik 2015-07-14 15:09:18
la source

vous pouvez obtenir plink & pageant d'ici: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

ce sont des outils de mastic.

0
répondu eabrand 2010-08-18 07:24:21
la source

a travaillé pour moi sur Windows 8: GIT_SSH variable pointait vers plink.EXE, Modifié dans les paramètres du système pour pointer vers le binaire ssh, et qui a corrigé le problème. Pour trouver le chemin complet vers le ssh, exécutez:

where ssh
0
répondu Dmitriy 2016-10-14 05:18:53
la source

j'ai eu ce problème (direct ssh a fonctionné, mais git pull a échoué) en raison de ma télécommande git n'étant pas ce que je pensais qu'il était.

Oui, Oui, je sais que c'est une erreur stupide, mais ça arrive et ça vaut la peine de vérifier.

Utiliser git remote -v

0
répondu cowlinator 2017-02-28 01:35:35
la source

Autres questions sur