Fehler "Auth Failed" mit EGit und GitHub


98

Ich habe das EGit-Plugin bei Eclipse Helios installiert und versuche, es mit meinem GitHub-Konto zu verwenden. Wenn ich jedoch versuche, es zu konfigurieren, wird der Fehler "Auth Failed" angezeigt.

Ich habe es gegoogelt, aber kein Glück ... es scheint ein Problem mit meiner Passphrase zu sein, aber AFAIK EGit sucht nach der richtigen Stelle ( /home/user/.ssh/id_rsa) und ich habe kein Problem mit der Verbindung sshoder dem gitKonsolenclient.

Einige Blogs sagen, dass dies ein Problem mit der URI und dem Egit-Parser ist, aber ich habe immer noch keine Lösung gefunden.


Antworten:


140

Meine Antwort mag veraltet sein, aber hoffentlich kann sie für jemanden nützlich sein.

  1. Gehen Sie in Ihrer Eclipse zu Fenster> Einstellungen> Allgemein> Netzwerkverbindungen> SSH2 (oder geben Sie einfach "SSH2" in das Filterfeld des Einstellungsfensters ein).

  2. In "Key Management" Registerkarte Presse "Gene RSA Key ..." Taste. Optional können Sie Ihrem Schlüssel einen Kommentar (normalerweise eine E-Mail-Adresse) und eine Passphrase hinzufügen. Die Passphrase wird während der Authentifizierung auf GitHub verwendet.

  3. Kopieren Sie Ihren generierten öffentlichen Schlüssel (in ein Feld direkt unter der Schaltfläche "RSA-Schlüssel generieren ...") und fügen Sie ihn Ihrem GitHub-Konto hinzu.
  4. Klicken Sie auf die Schaltfläche "Privaten Schlüssel speichern ..." , um Ihren privaten RSA-Schlüssel in einer Datei zu speichern. Standardmäßig werden Schlüssel im SSH2-Ausgangsverzeichnis gespeichert (siehe Registerkarte "Allgemein").

Das ist es! Jetzt sollten Sie in der Lage sein, Ihren Code an GitHub Repo zu senden.


1
Mein privater Schlüssel hatte nicht den Standardnamen (id_rsa), daher wurde er nicht als solcher erkannt. Ich habe es manuell in den von Ihnen angegebenen Einstellungsfenstern hinzugefügt, und es hat einwandfrei funktioniert.
Muriloq

18
Ich habe festgestellt, dass ich nach dem Einrichten des SSH-Schlüssels, wie Sie es beschreiben, den Benutzernamen / das Kennwort im Authentifizierungsfeld nicht ändern sollte (ich habe meine GitHub-Anmeldeinformationen eingegeben). Der Standardwert in diesem Feld ist Benutzername: Git und Passwort sind leer.
Harschware

1
Dies funktionierte bei mir mit einem BitBucket-Git-Repository, ich musste Eclipse jedoch neu starten.
Artlung

8
Den Benutzernamen als Git und Passwort leer zu lassen, hat schließlich für mich funktioniert.
Mike R

4
So fügen Sie Ihrem Github-Konto einen generierten RSA-Schlüssel hinzu 1) Melden Sie sich bei Ihrem Github-Konto an 2) Gehen Sie zu Einstellungen 3) Auf der linken Seite finden Sie SSH-Schlüssel, klicken Sie darauf 4) Klicken Sie dann auf SSH-Schlüssel hinzufügen (fügen Sie nun den SSH-Schlüssel ein was Sie generiert haben)
Rajeev

27

Ich hatte genau das gleiche Problem, aber ich fand die Heilung aus einem Eclipse-Fehlerbericht!

Eine Umgebungsvariable mit dem Namen GIT_SSH muss mit einem Pfad zu einer ausführbaren ssh-Datei [1] festgelegt werden.

Zum Beispiel unter Ubuntu Linux (10.10 64bit):

> export GIT_SSH=/usr/bin/ssh
> eclipse

Danach werden die Pushs zum GitHub-Repository so ausgeführt, wie sie sollten. Ich habe dies mit Eclipse Galileo und Indigo getestet.

Das Problem ist wirklich nervig und die Lösung ist alles andere als schön. Um die Lösung zumindest für Ubuntu-Benutzer dauerhaft zu machen, muss die env-Variable vorerst dauerhaft sein. Dies kann durch Hinzufügen des Exportbefehls zu ~ / .profile oder ~ / .bashrc [2] erfolgen. Beispielsweise:

> cd ~
> echo "export GIT_SSH=/usr/bin/ssh" >> .profile

Starten Sie dann Eclipse neu, damit es wirksam wird.

Quellen:


Ich war die ganze Woche mit diesem Problem beschäftigt - Eclipse unter osx verbindet sich mit GitHub oder Asssembla. Ihr Fix funktioniert bei mir. Vielen Dank.
Ianmayo

Unter Windows hat openssh bei mir nicht funktioniert. Ich musste Plink benutzen. Siehe meine Antwort.
Piotr Dobrogost

Und es kommt einem veröffentlichten Fix näher. Am Ende des Fehlerberichts zeigte jemand, wie man die neueste jsch-JAR-Datei manuell herunterlädt und manuell installiert, damit es so funktioniert. Ich werde einfach mit dieser env var-Lösung arbeiten und warten, bis die jsch-JAR-Datei in die eigentliche Eclipse-Version gelangt.
Crowmagnumb

Mein Problem gelöst. Vielen Dank.
Pedram

OH MEIN GOTT. Bei solchen Problemen frage ich mich, warum Android Eclipse überhaupt verwendet hat. Vielen Dank für Ihren Tipp. Das löste mein Problem und EGit / Eclipse war mit "Auth Fail"
Calyth

16

Ich habe es behoben, indem ich httpals Protokoll ausgewählt und meinen GitHub-Benutzernamen und mein Passwort angegeben habe.


Ja! Im Gegensatz zu allem anderen, was ich gelesen habe, hat das funktioniert. (Eclipse Indigo)
Owen B

http oder https sind viel einfacher als ssh
Junchen Liu

Ja, aber es gibt Fälle, in denen Sie ssh verwenden müssen. B. die Zwei-Faktor-Authentifizierung in BitBucket während der Arbeit mit Repositorys. Sie können nur über ssh arbeiten, wenn Sie eine Zwei-Faktor-Authentifizierung benötigen.
Akshay Mahajan

10

Nachdem ich stundenlang nach einer Lösung für dieses Problem gesucht hatte, schlug ich schließlich Gold, indem ich die in einem Eclipse-Forum erwähnten Änderungen vornahm .

Schritte:

Voraussetzungen: mysysgit wird mit der Standardkonfiguration installiert.

1.Erstellen Sie die Datei C: /Users/Username/.ssh/config (Ersetzen Sie "Benutzername" durch Ihren Windows 7-Benutzernamen (z. B. C: /Users/John/.ssh/config)) und fügen Sie diese ein:

Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2.Versuchen Sie, das Remote-Repository jetzt in Eclipse einzurichten.

Prost. Es sollte perfekt funktionieren.


8

Sie müssen msysgit installieren. Nach der Installation müssen Sie Git Bash öffnen und dort die folgenden Befehle eingeben:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email gennad.zlobin@gmail.com (your email)
$ ssh-keygen -C "gennad.zlobin@gmail.com" -t rsa (your email)

Jetzt sind Ihre generierten Schlüssel in C:\Users\username\.ssh(in Windows 7).
Als nächstes laden Sie den Inhalt Ihres öffentlichen Schlüssels in Ihr Projekt auf Github
In Eclipse, öffnen Sie Window->Preferences->General->Network->SSH2und legen Sie Ihren ~/.sshals SSH-Startseite fest

Gehen Sie danach zu Key Management tabund laden Sie den vorhandenen Schlüssel - geben Sie hier Ihren privaten Schlüssel ein ~/.ssh.

Danach können Sie Ihr Projekt an Github senden (aber ich habe das ssh-Protokoll festgelegt, nicht git + ssh).


Vielen Dank, aber eigentlich
lasse

5

Ich habe das gleiche Problem mit dem Hinzufügen meines Schlüssels zu ssh gelöst.

ssh-add ~/.ssh/id_rsa 

Geben Sie dann die Passphrase ein und müssen Sie neu starten.


4

Für * nix Benutzer, die SSH verwenden:

Stellen Sie sicher, dass der Benutzername für Ihr Konto auf Ihrem lokalen Computer nicht vom Benutzernamen für das Konto auf dem Server abweicht. Anscheinend scheint eGit damit nicht umgehen zu können. Wenn Ihr Benutzername auf Ihrem lokalen Computer beispielsweise "john" ist und das Konto, das Sie auf dem Server verwenden, "git" heißt, kann egit einfach keine Verbindung herstellen (für mich jedenfalls). Die einzige Lösung, die ich gefunden habe, besteht darin, sicherzustellen, dass Sie sowohl auf dem lokalen Computer als auch auf dem Server identische Benutzernamen haben.


1
Irgendeine Idee ist das noch der Fall? Ich habe heute Abend meinen Kopf gegen die Wand geschlagen. Mein privater Schlüssel ist mit einer Passphrase geschützt, nach der Eclipse / eGit niemals fragt. Wenn ich versuche, auf Remote zu pushen, gibt Eclipse nur den Fehler "org.eclipse.jgit.transport.CredentialItem $ StringType Passphrase für .ssh id_rsa" aus
Vilsepi


2

Meine vier Penneth: Meine SSH-Schlüssel wurden in Cygwin unter C: \ cygwin \ home \ <Benutzer> .ssh eingerichtet, daher habe ich SSH auf diesen Ordner anstatt auf den Standardordner (Win7) C: \ Benutzer \ <Benutzer> \ ssh verwiesen , gemäß diesen Anweisungen: http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

und verwendet das SSH-Protokoll, und es funktioniert gut. Beim Versuch, das Git-Protokoll zu verwenden, wird jedoch weiterhin "Benutzer wird vom Git-Protokoll nicht unterstützt" angezeigt.


2

Für Sie, die, wie ich, Ihre SSH-Schlüssel bereits eingerichtet haben, aber dennoch die Fehler erhalten:

Stellen Sie sicher, dass Sie eine Push-Fernbedienung eingerichtet haben . Es hat bei mir funktioniert, als ich beide Refs für Remote-Repository nicht erhalten konnte Probleme " " ("... Passphrase für ..." als auch "Auth fail" im Dialogfeld "Push ...") erhalten habe.

Vorausgesetzt, Sie haben bereits:

  1. Richten Sie Ihre SSH-Schlüssel mit Github ein (Fenster> Einstellungen> Allgemein> Netzwerkverbindungen> SSH2)

  2. Richten Sie Ihr lokales Repository ein (Sie können diesem Handbuch folgen )

  3. Erstellt ein Github-Repository ( gleiche Anleitung )

... so machst du das:

  • Wechseln Sie zur Ansicht Git Repositories (Fenster> Ansicht > Andere> Git-Repositorys).
  • Erweitern Sie Ihr Repository und klicken Sie mit der rechten Maustaste auf Fernbedienungen -> "Remote erstellen".
  • "Remote Name": Ursprung, "Configure Push": aktiviert -> klicken Sie auf "OK"
  • Klicken Sie auf die Schaltfläche "Ändern ..."
  • Fügen Sie Ihren Git-URI ein und wählen Sie das Protokoll ssh -> klicken Sie auf "Fertig stellen".
  • Nun klicken Sie auf „Speichern und Push“ und jetzt sollten Sie eine Passwort - Eingabeaufforderung erhalten -> geben Sie die Public - Key - Passwort hier (sofern Sie DID (und sollten) Setup ein Passwort auf Ihren öffentlichen Schlüssel) -> klicken Sie auf „OK“
  • Jetzt sollte ein Bestätigungsfenster mit der Aufschrift "Pushed to YourRepository - origin" angezeigt werden -> klicken Sie auf "OK".
  • Push to Upstream , aber dieses Mal verwenden Sie "Configured Remote Repository" als Ihr Ziel-Git-Repository
  • Hol dir eine wohlverdiente Tasse Kaffee!


1

Haben Sie versucht, das ssh-Protokoll stattdessen auf git + ssh zu verwenden? Ich habe das gleiche Problem, und das hat es gelöst, obwohl die offizielle Dokumentation die Verwendung von git + ssh vorschreibt


1

Unter Windows GIT_SSHfunktionierte die Einstellung auf openssh, die mit msys git geliefert wird, nicht (Eclipse blieb während des Festschreibens hängen). Das Setzen auf TortoisePlink löste das Problem (ich denke, der ursprüngliche Plink würde auch funktionieren). Der zusätzliche Bonus ist jetzt, dass Eclipse die im Festzug gespeicherten Schlüssel verwendet.


1

Ich habe es behoben, indem ich https als Protokoll ausgewählt und dann meinen Github-Benutzernamen und mein Passwort hinzugefügt habe


1

In Ihrer GIT-Ansicht, in der Sie Ihre Repositorys haben, sehen Sie eine Struktur wie:

  • Geäst
  • Stichworte
  • Verweise
  • Fernbedienungen
  • etc...

Klicken Sie auf Fernbedienungen, klicken Sie dort mit der rechten Maustaste auf die URL des Repositorys und wählen Sie "Anmeldeinformationen ändern".



0

Ich hatte das gleiche Problem, das anscheinend auf ein Konfigurationsproblem zurückzuführen war. Die Github Mac OSX App hatte einen privaten SSH-Schlüssel namens github_rsa erstellt

In deiner Eclipse gehe zu Window > Preferences > Network Connections > SSH2

Auf der Registerkarte "Allgemein" sollte SSH2 home /Users/<you username>/.sshangezeigt werden. Wahrscheinlich sehen Sie "id_dsa" und "id_rsa", die als private Schlüssel definiert sind.

Klicken Sie auf "Privaten Schlüssel hinzufügen" und wählen Sie "github_rsa" aus /Users/<you username>/.ssh


0

WENN SIE PEM-DATEI HABEN : Gehen Sie in Eclipse zu Fenster> Einstellungen> Netzwerkverbindungen> SSH2 und fügen Sie dann den Pfad zu Ihrer PEM-Datei zu "Private Schlüssel" hinzu. Dies sollte das Problem lösen.


0

Ich wollte mir auch einmal einen Google Code Fix veröffentlichen und bekam den gleichen Fehler. Mit Gestartet Diese Video, aber beim Speichern und Veröffentlichen ist ein Fehler aufgetreten. Ich habe gesehen, dass diesbezüglich mehrere Fragen bestehen. Einige sind Windows-Benutzer, diese haben das größte Glück, da sie normalerweise keine Probleme mit Berechtigungen haben und andere Linux-Benutzer sind.

Ich habe einen Mac für die mobile Entwicklung und treffe diese Probleme sehr oft. Die Ursache für diese Probleme sind die "plattformunabhängigen" Lösungen, die für Mac nicht ausreichend sind und keinen Zugriff auf den Schlüsselbund haben, in dem die Zertifikate, PEM-Dateien usw. gespeichert sind.

Ich wollte nur keine Umgebungseinstellungen oder Befehlszeilen vornehmen, sondern nur einfache GUI-basierte Klicks, wie ein normaler Benutzer.

Der halbe Teil wurde mit dem Eclipse Git Plugin gemacht, der zweite Teil (Push to Github) wurde mit Mac Github gemacht

Schön und einfach :)

Alles kann mit dieser nativen App gemacht werden, wenn ich anfangen würde, es zu lernen, ich brauche nur die Push-Funktionalität von ihm.

Ich hoffe, es hilft einem Mac-Benutzer einmal.


0

Ich habe festgestellt, dass Eclipse beim Einrichten der zweistufigen Authentifizierung in Github keine Verbindung zu Github herstellen kann. Dies ist sinnvoll, da Sie für die zweistufige Authentifizierung in Github eine Nummer aus einer SMS eingeben müssen (und Eclipse dies nicht tun würde). t diese Informationen haben).

Wenn dies Ihr Szenario ist, können Sie Ihre zweistufige Authentifizierung in Github deaktivieren und prüfen, ob dies hilfreich ist.


0

Für vorhandene SSH-Schlüssel denke ich, dass es ein Fehler in Eclipse Juno 3.8 ist.

Was ich getan habe:

1) Laden Sie den vorhandenen Schlüssel über: Fenster> Einstellungen> "Search ssh"> Registerkarte "Schlüsselverwaltung"> "Vorhandenen Schlüssel laden"> Wählen Sie den privaten Schlüssel aus, den Sie bereits haben

2) Speichern Sie diesen Schlüssel, indem Sie auf die Schaltfläche Privaten Schlüssel speichern klicken . Nennen wir es id_dsa_github

3) Überprüfen Sie nun, ob Push and Pull funktioniert oder nicht. Es sollte sein.

4) Entfernen Sie nun auf der Registerkarte Allgemein den privaten Schlüssel id_dsa_github und fügen Sie Ihren vorherigen privaten Schlüssel hinzu, indem Sie auf die Schaltfläche Privaten Schlüssel hinzufügen klicken

Jetzt können Sie loslegen. Es dauert mindestens eine Zeit, um alle Dinge von EGit bis zur Registrierung zu erledigen , denke ich.


0

Ich stoße auf das gleiche Problem.

Ich dachte, das hat etwas mit meinen Anmeldeinformationen und meiner Authentifizierung zu tun.

Dann wurde mir endlich klar, dass der von mir konfigurierte URI keine HTTP-Variante ist.

Ich habe versucht, mit HTTP-Konfiguration auf den SSH-URI meines Git zu pushen.

Überprüfen Sie Ihre URL in

Git Perspective> Remotes> Origin> Configure Fetch> Change> Stellen Sie sicher, dass das Prtocal HTTPS und die URL die https-Version ist .


0

Ich könnte die Konsole verwenden, um die Repositorys zu verschieben / zu ziehen, aber nein in Eclipse. In meinem Fall scheint Eclipse meinen privaten SSH-Schlüssel nicht lesen zu können. Mein Schlüssel begann mit:

-----BEGIN OPENSSH PRIVATE KEY-----

Und ich bemerkte, dass der Schlüssel meines Kollegen begann mit:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

Ich denke, derzeit kann Eclipse diese neue Art von Schlüssel (OPENSSH PRIVATE KEY) nicht akzeptieren.

Ich habe es gelöst durch: Regenerieren Sie Ihren SSH-Schlüssel mit dem folgenden Befehl:

ssh-keygen -m PEM -t rsa -b 2048

Dies verwendet die alte Methode zum Generieren des Schlüssels: Es beginnt also mit den Überschriften:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

Weitere Informationen zu:

https://github.com/duplicati/duplicati/issues/3360

Anschließend können Sie den Schlüssel erneut in Eclilpse laden, indem Sie Einstellungen -> Netzwerkverbindungen -> SSH2 verwenden und auf "Privaten Schlüssel hinzufügen" klicken (wählen Sie weiterhin Ihren privaten Schlüssel aus, auch wenn Sie den Namen bereits in der Liste der privaten Schlüssel sehen, da Eclipse dies muss erneut laden)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.