Ich benutze Github und habe in der Vergangenheit erfolgreich Dateien auf meinem Laptop hinzugefügt und synchronisiert.
Seit kurzem erhalte ich nach dem Ausführen " PuTTY Fatal Error: Disconnected: Keine unterstützten Authentifizierungsmethoden verfügbar ".
Git Pull Origin Master (oder Push)
jedoch
ssh [email protected] gibt die richtige Antwort zurück: FEHLER: Hallo Benutzername! Sie haben sich erfolgreich authentifiziert, aber GitHub bietet keinen Shell-Zugriff. Die Verbindung zu github.com wurde geschlossen.
Nachdem ich mich auf Github umgesehen hatte, fand ich dieses 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 ja, stellen Sie sicher, dass pageant.exe ausgeführt wird und der Schlüssel, den Sie für github erstellt haben, darin geladen ist. Dies liefert den Schlüssel zu plink.exe; Ohne sie tritt der obige Fehler auf.
Ich bin mir nicht sicher, was plink.exe oder peagant.exe ist. Und die Tatsache, dass ssh [email protected] sich korrekt zu authentifizieren scheint, lässt mich fragen, was die beste Lösung hier ist. Ich möchte mein Setup auf keinen Fall überkomplizieren, wenn nicht notwendig.
GIT_SSH
zu.bash_profile
und nicht.profile
GIT_SSH="D:\Program Files\Git\usr\bin\ssh.exe"
Verwenden von TortoiseGit
TortoiseGit> Einstellungen ... Netzwerk ... SSH-Client:
C:\Program Files\Git\usr\bin\ssh.exe
Lage meine variieren. Auf einem Computer war es in
C:\Program Files (x86)\Git\bin\ssh.exe
quelle
Da fragen Sie: plink & pageant sind Teil der PuTTY-Suite, einer Implementierung von SSH, die Linux & Windows unterstützt und unter Windows vollständig dominiert.
SSH
Wenn Sie jemals Telnet verwendet haben, ist dies so (aber sicherer): Sie können remote auf die Bash-Shell (Befehlszeile) eines Linux-Hosts zugreifen.
Kitt
Unter Windows ist es die dominierende Software für den Remotezugriff auf die Befehlszeile eines Linux-Hosts unter dem SSH-Protokoll (oben). In Windows gelten EXE-Erweiterungen für ausführbare Dateien. Daher gelten diese Hinweise zu plink.exe & pageant.exe wahrscheinlich nicht, wenn Sie unter Linux arbeiten . PuTTY beinhaltet
Von ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )
Github wird also auf einem Linux-Computer 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 anscheinend, 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, daher müssen sie verwaltet werden. Wenn Sie unter Windows arbeiten, wird auf Ihre SSH-Sitzung wahrscheinlich über plink zugegriffen, und Ihre Schlüssel werden wahrscheinlich von Pageant verwaltet.
Importieren Sie den Schlüssel, den Sie jedes Mal benötigen, wenn Sie Pageant laden. Wenn Sie Anleitungen mit der Aufschrift "Importieren Sie Ihren Schlüssel" befolgt haben und festgestellt haben, dass dies funktioniert, aber jetzt nicht funktioniert, lesen Sie Kapitel 9: Verwenden von Pageant zur Authentifizierung .
Ein letzter Tipp unter Windows: Möglicherweise sind mehrere Instanzen der PuTTY-Suite von verschiedenen Tools installiert. TortoiseGit installiert beispielsweise eine eigene.
quelle
Ich habe dieses Problem festgestellt, weil ich
GIT_SSH
auf die TortoiseSVN-Version von verwiesen habePlink.exe
. Ich habe es geändert, um auf die TortoiseGit-Version zu verweisen, cmd neu gestartet 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 eine 64-Bit-Version (befindet sich in
Program Files
, nichtProgram Files (x86)
).Überprüfen Sie Ihre
GIT_SSH
Umgebung var.Ich bevorzuge git mit normal
cmd.exe
(natürlich in Console2)quelle
Für TortoiseGit-Benutzer unter Windows
Ursprünglich habe ich die meisten meiner Github / Bitbucket-Repositorys mithilfe der SSH-Repository-URLs eingerichtet, da dies (ursprünglich) die einzig bequeme Möglichkeit war, zu verhindern, dass TortoiseGit bei jeder einzelnen Aktion zur Eingabe Ihres Kennworts auffordert.
Aber TortoiseGit auf diese Weise einzurichten war immer haarsträubend schmerzhaft. Jedes Mal, wenn ich Stunden brauchte, um mich richtig einzurichten, schienen die Standardinstallationsoptionen nie zu funktionieren (sogar ab 2016, meine Güte!).
TortoiseGit bietet jetzt eine bessere Kennwortverwaltung für HTTPS, und Github empfiehlt, wo immer möglich , HTTPS-URLs zu verwenden.
Die Vorteile von HTTPS sind:
pageant.exe
ständig ausgeführt zu werden (die bei jedem Start Ihr Passwort anfordert)quelle
Wenn Sie Pageant verwenden und nach dem Neustart Ihres PCs (oder dem sonstigen Schließen und erneuten Öffnen von Pageant) den in der Frage beschriebenen Fehler erhalten:
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 der vorherigen Sitzung beim Start NICHT automatisch.
So laden Sie den Schlüssel:
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 Passworts auf, wenn Ihr Schlüssel passwortgeschützt ist.)
Schritte dazu (vorausgesetzt, Sie haben Pageant bereits so konfiguriert, dass es beim Start von Windows ausgeführt wird):
shell:startup
)Referenz und vollständige Details: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
quelle
Mein Problem war, dass ich versuchte, meinen Github-Benutzernamen zu verwenden. Wenn Sie Github verwenden (oder ist es eine Git-Sache?) , Wenn Sie eine schlüsselbasierte Authentifizierung verwenden, müssen Sie anscheinend Ihren Benutzernamen auf setzen
git
.Ich bin mir nicht sicher, warum Sie überhaupt einen Benutzernamen benötigen - vielleicht kann jemand, der besser informiert ist, das erklären?
quelle
ssh://[email protected]/myname/repo.git
wird großartig funktionieren. Gute Arbeit. Ich gehe davon aus, dass es darum geht, die Sicherheit zu sperren. Für den Benutzer 'git' ist die Anmeldung deaktiviert, sodass niemand auf diese Weise in das System eindringen kann. Sie müssen einen gültigen Schlüssel haben, um überhaupt mit Github sprechen zu können, und sobald sie einen gültigen Schlüssel haben, können sie ihn mit dem BenutzerAuf meinem Windows 7-Computer, auf dem Github für Windows mit der Git-Version 1.8.3.msysgit.0 ausgeführt wird. Ich fand, dass das Aktualisieren meiner Systemumgebungsvariablen GIT_SSH auf C: \ Programme (x86) \ Git \ bin \ ssh.exe den Trick zu tun schien. Dies hat auch mein Problem mit der Kontaktaufnahme mit OpenShifts Git-Repo behoben.
quelle
Funktionierte für mich unter Windows 8: Die Variable GIT_SSH zeigte auf plink.exe, wurde in den Systemeinstellungen so geändert, dass sie auf die SSH-Binärdatei verweist, und das hat das Problem behoben. Um den vollständigen Pfad zum SSH herauszufinden, führen Sie Folgendes aus:
quelle
Um dieses Problem zu beheben, habe ich Folgendes getan.
Ich habe Git Bash unter Windows 10 verwendet
Ich startete Pageant, drückte Add Key,
Navigierte zum Ordner C: \ Users \ username \ .ssh und wählte meinen Schlüssel
Ich versuche dann einen Git Push zu machen und diesmal hat es funktioniert.
quelle
Gleicher Fehler, andere Lösung hier angegeben - Problem beim Herstellen einer Verbindung zu GitHub unter Windows, auch über PuTTY
quelle
Ich bin auf dasselbe Problem gestoßen, aber die GIT_SSH-Lösung schien einmal für mich zu funktionieren. Nach einem Neustart des Computers wurde mir klar, dass es sich um etwas anderes handelte, da ich meine privaten Repositorys problemlos mit Git Bash oder der Eingabeaufforderung klonen konnte, jedoch nicht in Sublime Text 3 mit dem SublimeGit-Plugin. Meine Lösung war einfach und ist tatsächlich das, was @BlueRaja - Danny Pflughoeft erwähnte, aber ich dachte, es könnte eine Richtung gebrauchen;)
Grundsätzlich müssen Sie nur
~/.ssh/config
den Benutzernamen bearbeiten und sicherstellengit
. Sie können auch festlegen, dass ein bestimmter SSH-Schlüssel für Github verwendet werden soll. Meine~/.ssh/config
Datei sieht folgendermaßen aus:Ich habe einen bestimmten Schlüssel für Github aufgrund der Anzahl anderer Dinge, die ich im Laufe meines Tages mache, aber wenn Sie nur einen haben, wird es normalerweise so sein,
~/.ssh/id_rsa.pub
wie Github es hier erklärt .Ich weiß, dass jeder eine andere Lösung hat, aber ich werde dies hier jedem überlassen, der auf diesen Artikel ohne Korrektur stößt. Viel Glück!
quelle
Ich habe diesen Fehler erhalten, als ich TortoiseGit zum Klonen eines Repositorys von GitHub verwendet habe. Behoben durch Klicken auf "Putty Key laden" und Auswählen einer Schlüsseldatei (* .pkk) im Git-Klon-Dialog.
quelle
Sie können Plink & Pageant von hier bekommen: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Sie sind PuTTY-Werkzeuge.
quelle
Ich habe dieses Problem (direktes SSH hat funktioniert, aber Git Pull ist fehlgeschlagen), weil meine Git-Fernbedienung nicht das ist, was ich dachte.
Ja, ja, ich weiß, dass es ein dummer Fehler ist, aber es passiert und es lohnt sich, es zu überprüfen.
Verwenden
git remote -v
quelle
Ich hatte ein ähnliches Problem nach dem Update von GitExtensions auf Version 3.3.0.7719
Irgendwie wurden meine Authentifizierungseinstellungen zurückgesetzt, um PuTTY anstelle von OpenSSH zu verwenden.
In dieser Version ist hier das Menü, mit dem ich OpenSSH wieder aktiviert habe:
quelle