wake-up-neo.net

github: Keine unterstützten Authentifizierungsmethoden verfügbar

ich benutze Github und habe in der Vergangenheit erfolgreich Dateien auf meinem Laptop hinzugefügt und synchronisiert. 

seit kurzem habe ich angefangen, " PuTTY Fatal Error: Disconnected: Keine unterstützten Authentifizierungsmethoden verfügbar zu haben " nach dem Ausführen:

git Pull Origin Master (oder Push)

jedoch

ssh [email protected] gibt die richtige Antwort zurück: ERROR: Hallo Benutzername! Sie haben sich erfolgreich authentifiziert, aber GitHub bietet keinen Shell-Zugriff Verbindung zu github.com geschlossen.

nachdem ich auf github herumgegraben hatte, fand ich diese morcel:

Keine unterstützten Authentifizierungsmethoden verfügbar Sie sollten die Umgebungsvariable GIT_SSH kennen, die von git verwendet wird, um Ihren ssh-sprechenden Client zu finden, wenn ssh für Sie nicht funktioniert. Die git-Installation verwendet möglicherweise plink.exe (über GIT_SSH), um die Authentifizierung durchzuführen. Wenn dies der Fall ist, vergewissern Sie sich, dass pageant.exe ausgeführt wird und der für github erstellte Schlüssel darin geladen ist. Dies liefert den Schlüssel zu plink.exe; Andernfalls tritt der obige Fehler auf.

ich bin mir nicht sicher, was plink.exe oder peagant.exe ist .. und die Tatsache, dass sich ssh [email protected] richtig zu authentifizieren scheint, lässt mich fragen, was die beste Lösung hier ist notwendig. 

88
Sonic Soul

Sie können eine Datei mit dem Namen ".profile" in Ihrem Home-Verzeichnis erstellen. Dies ist für mich C:\Users\[Benutzer].

Fügen Sie in diese Datei die folgende Codezeile ein:

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

Dadurch wird die Umgebungsvariable GIT_SSH so eingestellt, dass der in git enthaltene ssh-Client verwendet wird.

Das .profile-Skript wird ausgeführt, wenn Sie Ihre Git Bash-Befehlszeile starten.

Edit: Dies ist mein .profile. Sie werden beim ersten Start des git-Befehls Prompt nach Ihrem Kennwort gefragt, und Sie werden sich von da an daran erinnern, bis Sie Ihren Computer neu starten. Sehr praktisch, damit Sie nicht jedes Mal Ihr Passwort eingeben müssen, wenn Sie etwas tun möchten.

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
92
Rex Morgan

TortoiseGit verwenden

TortoiseGit> Einstellungen ... Netzwerk ... SSH-Client: C:\Program Files\Git\usr\bin\ssh.exe

Lage kann variieren. Auf einem Computer war es in C:\Program Files (x86)\Git\bin\ssh.exe

tortoisegit

21
Joseph Dykstra

"... nicht sicher, was plink.exe oder peagant.exe ist ..."

Da Sie fragen: plink & pageant sind Teil der PuTTY-Suite, einer Implementierung von SSH, die Linux und Windows unterstützt und unter Windows vollständig dominiert.

SSH 

Secure Shell (SSH) ist ein kryptografisches Netzwerkprotokoll zum Sichern von Datenkommunikation. Es stellt einen sicheren Kanal über einen unsicheren Netzwerk in einer Client-Server-Architektur, Verbindung mit einem SSH-Client Anwendung mit einem SSH-Server. Häufige Anwendungen sind Remote Befehlszeilenanmeldung, Remote-Befehlsausführung, aber jeder Netzwerkdienst kann mit SSH gesichert werden.

wenn Sie jemals Telnet verwendet haben, ist es so (aber sicherer): Es ermöglicht Ihnen den Remote-Zugriff auf die Bash-Shell (Befehlszeile) eines Linux-Hosts.

PuTTY

PuTTY ist ein kostenloser Open-Source-Terminalemulator, eine serielle Konsole und Netzwerk-Dateiübertragungsanwendung. Es unterstützt mehrere Netzwerke Protokolle, einschließlich SCP, SSH, Telnet, rlogin ...

Unter Windows ist dies die dominierende Software für den Fernzugriff auf die Befehlszeile eines Linux-Hosts unter dem SSH-Protokoll (oben). In Windows sind EXE-Erweiterungen für ausführbare Dateien. Also die Hinweise zu plink.exe & pageant.exe wahrscheinlich gelten nicht für Linux . PuTTY beinhaltet 

Plink: Eine Befehlszeilenschnittstelle zum PuTTY-Back endet

Pageant: Ein SSH-Authentifizierungsagent für PuTTY, PSCP und Plink

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

Wenn der öffentliche Schlüssel am fernen Ende vorhanden ist und das passende Am lokalen Ende ist ein privater Schlüssel vorhanden. Das Kennwort lautet "no" länger erforderlich ... für zusätzliche Sicherheit kann der private Schlüssel selbst mit einer Passphrase gesperrt werden.

So wird github auf einem Linux-Rechner gehostet und verwendet SSH, um die Verbindung zu sichern. SSH authentifiziert sich entweder mit Passwörtern oder Schlüsseln, viele Hosts (github?) Authentifizieren sich nur mit Schlüsseln. Ihr Setup versucht offenbar, sich mit einem Schlüssel zu authentifizieren. Schlüssel und Hosts sind nicht eins zu eins: Sie können zwei Schlüssel für denselben Host und/oder zwei Hosts für denselben Schlüssel haben. Sie müssen also verwaltet werden. Wenn Sie sich unter Windows befinden, wird wahrscheinlich auf Ihre SSH-Sitzung über Plink zugegriffen, und Ihre Schlüssel werden wahrscheinlich von Pageant verwaltet.

Importieren Sie den benötigten Schlüssel jedes Mal, wenn Sie Pageant laden. Wenn Sie den Anleitungen "Import your key" gefolgt sind und festgestellt haben, dass es funktioniert hat, es jetzt nicht funktioniert, siehe Kapitel 9: Pageant zur Authentifizierung verwenden .

Ein letzter Tipp unter Windows: Möglicherweise haben Sie mehrere Instanzen der PuTTY-Suite mit verschiedenen Tools installiert. TortoiseGit zum Beispiel installiert sein eigenes.

10
woodvi

Dieses Problem ist aufgetreten, weil mein GIT_SSH auf die TortoiseSVN-Version von Plink.exe zeigte. Ich habe es geändert, um auf die TortoiseGit-Version zu verweisen, cmd neu zu starten und es hat funktioniert.

Ich kann mich nicht genau erinnern, aber die TortoiseSVN-Version war möglicherweise eine 32-Bit-Version, und die TortoiseGit-Version war 64-Bit (in Program Files, nicht Program Files (x86)).

Überprüfen Sie Ihren GIT_SSH env var.

Ich bevorzuge git mit normalem cmd.exe (natürlich in Console2)

8
vaughan

Für TortoiseGit-Benutzer unter Windows

Ursprünglich hatte ich die meisten meiner Github/Bitbucket-Repositorys mit den SSH-Repository-URLs eingerichtet, da (ursprünglich) dies die einzige praktische Möglichkeit war, um zu verhindern, dass TortoiseGit bei jeder einzelnen Aktion nach Ihrem Kennwort fragt.

Aber TortoiseGit so aufzustellen, war immer schmerzhaft. Es dauerte jedes Mal, dass ich Stunden richtig eingerichtet hatte, da die Standardinstallationsoptionen nie zu funktionieren schienen (sogar ab 2016, Sheesh!).

TortoiseGit hat jetzt ein besseres Passwort-Management für HTTPS, und Github empfiehlt, HTTPS-URLs zu verwenden, wo immer dies möglich ist. 

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

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

Die Vorteile von HTTPS sind:

  • Kein Verwalten oder Generieren von SSH-Schlüsseln
  • Es ist nicht notwendig, dass pageant.exe ständig aktiv ist (wodurch bei jedem Start das Kennwort abgefragt wird).
  • Mit TortoiseGit aus Australien finde ich, dass Klone über HTTPS 5-10x schneller sind als SSH
5
Simon East

Mein Problem war, dass ich versuchte, meinen github-Benutzernamen zu verwenden. Wenn Sie Github verwenden (oder ist es eine Git-Sache?) , müssen Sie Ihren Benutzernamen auf git setzen, wenn Sie die schlüsselbasierte Authentifizierung verwenden.

Ich bin mir nicht sicher, warum Sie überhaupt einen Benutzernamen benötigen - vielleicht kann jemand, der sich mit Wissen auskennt, das erklären?

Wenn Sie Pageant verwenden und der in der Frage beschriebene Fehler angezeigt wird, nachdem Sie Ihren PC neu gestartet haben (oder auf andere Weise Pageant schließen und wieder öffnen):

Der Fehler kann dadurch verursacht werden, dass Pageant Ihren GitHub-SSH-Schlüssel nicht aktiv geladen hat. Standardmäßig lädt Pageant die Schlüssel NICHT automatisch aus der vorherigen Sitzung, wenn sie gestartet wird.

So laden Sie den Schlüssel:

  1. Offener Festzug. (Unter Pageant wird unter Windows ein Symbol in der Taskleiste angezeigt. Doppelklicken Sie darauf.)
  2. Klicken Sie auf die Schaltfläche Schlüssel hinzufügen und fügen Sie Ihren vorhandenen GitHub-SSH-Schlüssel hinzu.

Um dieses Problem in Zukunft zu vermeiden, können Sie Pageant so konfigurieren, dass Ihr Schlüssel beim Start automatisch geladen wird. (Pageant fordert Sie automatisch zur Eingabe eines Kennworts auf, wenn Ihr Schlüssel kennwortgeschützt ist.)

Schritte dazu (vorausgesetzt, Sie haben Pageant bereits für die Ausführung konfiguriert, wenn Windows gestartet wird):

  1. Suchen Sie nach der Verknüpfung, mit der Pageant beim Start von Windows ausgeführt wird. (Es kann sich im Autostart-Ordner befinden, der über Start> Ausführen> Shell:startup geöffnet werden kann.)
  2. Hängen Sie im Dialogfeld Eigenschaften der Verknüpfung den vollständigen Pfad und den Dateinamen der SSH-Schlüsseldatei an das Feld "Ziel" an.

Referenz und vollständige Details: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html

4
Jon Schneider

Auf meinem Windows 7-Computer, auf dem Github für Windows mit git Version 1.8.3.msysgit.0 ausgeführt wird. Ich fand, dass die Aktualisierung meiner Systemumgebungsvariablen GIT_SSH in C:\Programme (x86)\Git\bin\ssh.exe den Trick zu erfüllen schien. Das Problem mit der Kontaktaufnahme mit OpenShifts git repo wurde ebenfalls behoben.

2
atorres757

Ich habe diese Fehlermeldung erhalten, wenn Sie TortoiseGit zum Klonen eines Repositorys aus GitHub verwenden. Behebung durch Anklicken von "PuTTY-Schlüssel laden" und Auswählen einer Schlüsseldatei (* .pkk) im Git-Clone-Dialog.

1
Zymotik
1
Wayne Bloss

Das gleiche Problem war mir bekannt, jedoch schien die GIT_SSH-Lösung einmal für mich zu funktionieren. Nach einem Computer-Neustart wurde mir klar, dass es etwas anderes war, da ich meine privaten Repositorys problemlos mit Git Bash oder der Befehlszeile klonen konnte, aber nicht in Sublime Text 3 mit dem SublimeGit-Plugin. Meine Lösung war einfach und wird in der Tat von @BlueRaja - Danny Pflughoeft erwähnt, aber ich dachte, es könnte eine Richtung verwenden;)

Grundsätzlich müssen Sie nur ~/.ssh/config bearbeiten und sicherstellen, dass der Benutzername git ist. Sie können es auch anweisen, einen bestimmten SSH-Schlüssel für Github zu verwenden - Meine ~/.ssh/config-Datei sieht folgendermaßen aus:

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

Ich habe einen bestimmten Schlüssel für Github, da ich im Laufe des Tages viele andere Dinge getan habe, aber wenn Sie nur einen haben, ist es normalerweise ~/.ssh/id_rsa.pub wie Github erklärt hier .

Ich weiß, dass jeder eine andere Lösung hat, aber ich lasse das hier für alle, die auf diesen Artikel ohne eine Korrektur stoßen können. Viel Glück!

1
Winter

Ich habe dieses Problem (direktes ssh hat funktioniert, aber git pull ist fehlgeschlagen), weil meine git remote nicht das ist, was ich dachte.

Ja, ja, ich weiß, es ist ein dummer Fehler, aber es passiert und es lohnt sich zu prüfen.

Verwenden Sie git remote -v

0
cowlinator

Arbeitete für mich unter Windows 8: Die GIT_SSH-Variable wies auf plink.exe, Die Einstellung in den Systemeinstellungen wurde so geändert, dass sie auf die SSH-Binärdatei verweist. Dies hat das Problem behoben. Um den vollständigen Pfad zur SSH herauszufinden, führen Sie Folgendes aus:

where ssh
0
Dmitriy

Hier können Sie Plink & Pageant erhalten: http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html

Sie sind PuTTY-Werkzeuge.

0
eabrand