Git mit IntelliJ IDEA: Konnte nicht aus dem Remote-Repository lesen


260

Seit einigen Wochen kann ich nicht mehr vom oder zum Remote-Repository ziehen oder pushen. Ich dachte, dass es beim Upgrade auf IntelliJ IDEA 14 passiert ist, aber ich kann das Problem auch mit IDEA 13.1.5 reproduzieren.

In der QuickInfo heißt es: "Abrufen fehlgeschlagen, schwerwiegend: Konnte nicht aus dem Remote-Repository lesen."

und die Ausnahme auf der Registerkarte Versionskontrolle lautet

14:02:37.737: cd C:\dev\project
14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune
java.io.IOException: Padding in RSA public key!
    at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37)
    at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440)
    at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137)
    at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Wenn Sie das integrierte Terminal von IntelliJ verwenden und es ausführen git -c core.quotepath=false fetch origin --progress --prune, funktioniert es genau so, wie es sollte.

Laut Stacktrace scheint es ein Problem mit meinem zu geben KnownHosts, also habe ich unseren Git-Server von gelöscht ~/.ssh/known_hosts, in der Hoffnung, dass IntelliJ ihn erneut einfügen würde. Das Problem tritt jedoch weiterhin auf, wenn über die Benutzeroberfläche aktualisiert wird, und es ist kein neuer Eintrag geschrieben known_hosts. Als ich über das Zwischenspeichern der Datei nachdachte, startete ich IntelliJ ohne Erfolg neu.

Wenn Sie einen anderen machen git fetch vom Terminal aus mache, werde ich jetzt gefragt, ob ich den Server dauerhaft hinzufügen möchte. Danach wurde es known_hostserneut geschrieben, aber IntelliJ lässt mich mein Projekt immer noch nicht aktualisieren.

Ich habe online nichts über dieses Verhalten gefunden, daher ist es wahrscheinlich kein bekannter Fehler in der neuen IntelliJ-Version. Trotzdem habe ich auf 14.0.2 aktualisiert, aber das Problem besteht immer noch.

IntelliJ ist für die Verwendung der integrierten ausführbaren SSH-Datei konfiguriert.

Hat jemand eine Ahnung, was hier das Problem sein könnte?


Haben Sie Ihrem Git-Repository manuell einen SSH-Schlüssel hinzugefügt?
Aurelius

@aurelius ja, wir verwenden GitLab und ich habe es dort in mein Profil gepostet.
stuXnet

IntelliJ ist mit Ihrem öffentlichen / privaten Schlüsselpaar unzufrieden. Wie haben Sie es generiert?
Yole

@yole Ich habe beides versucht puttygenund Git GUI, wie es auch mein erster Gedanke war. Bist du sicher, dass es um mein Schlüsselpaar geht? Die Ausnahme scheint über die bekannten Hosts zu sein: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet

Ich bin mir nicht sicher über die Abwertung - es scheint ein Problem mit gehashten / nicht gehashten Einträgen in bekannten_Hosts zu geben. Ich werde mich etwas weiter damit befassen und die Frage beantworten.
stuXnet

Antworten:


721

Settings --> Version Control --> GitWählen Sie dann in der Dropdown-Liste der ausführbaren SSH-Datei aus Native

Versionskontrolle: Git: SSH ausführbar: Für aktuelles Projekt

Wenn dies nicht hilft, stellen Sie sicher, dass Ihr Native sshund Ihre gitClients eine ausreichend aktuelle Version haben.


5
Ich weiß, dass es möglich ist, die SSH-Implementierung zu ändern. Ich habe sogar ausdrücklich geschrieben, dass ich die integrierte ausführbare Datei verwende (was ich nicht geschrieben habe: native funktioniert unter Windows nicht für mich). Aber Ihr Beitrag antwortet nicht meine Frage, was das Problem mit der eingebauten ausführbaren Datei sein könnte.
stuXnet

22
Kann nicht für mich helfen
hellboy

8
@ Jimbo Nur meine Annahme, aber so verstehe ich es: Built in verwendet einen anderen "Benutzer" in Ihrem Repository, zuvor durfte dieser "Benutzer" Dateien und Änderungen pushen. Dieser "Benutzer" wurde in einem Update zurückgesetzt und kann dies nicht mehr. Native verwendet das Konto, das Sie auf Ihrem Computer angemeldet haben.
AlexG

10
Seltsam. Ich hatte 3 separate Computer, die mir alle nach mehr als 2 Jahren Arbeit angetan haben. das hat es behoben. WTF
Nicholas DiPiazza

11
@NicholasDiPiazza Dies hängt damit zusammen, dass Github kryptografische Standards entfernt. Github.com/blog/2507-weak-cryptographic-standards-removed . Auch andere Software, die "integrierte" Bibliotheken verwendet (z. B. TeamCity), ist von dieser Änderung betroffen. Ihr nativer Git-Client ist wahrscheinlich auf dem neuesten Stand. Deshalb wird er durch diesen Schritt behoben.
Philsch

68

Gehen Sie zu Einstellungen> Versionskontrolle> Git. Stellen Sie sicher, dass die ausführbare SSH-Datei auf "Native" eingestellt ist. (Wenn dies bereits der Fall ist, wechseln Sie zu "Built-in", wenden Sie es an und wechseln Sie dann wieder zu "Native".)

Wenn dies Ihr Problem nicht löst, würde ich empfehlen, einen Git-Client wie den GitHub-Client (kostenlose Desktop-App) herunterzuladen und zu versuchen, Ihr Projekt über die App zu synchronisieren. Gehen Sie dann zurück zu IntelliJ und prüfen Sie, ob es funktioniert.


1
Funktioniert auch in Android Studio einwandfrei. Dieses Problem hat mich wütend gemacht, danke @Farbod Jan!
Javad Sadeqzadeh

1
Das Umschalten SSH executablehat bei mir funktioniert. Ich war auch schon Nativedran.
Nic

1
Für alle, die in Betracht ziehen, zum integrierten System zurückzukehren: Aktualisieren Sie zuerst Ihr natives SSH. Die native ausführbare Datei wird im gesamten Betriebssystem verwendet und verhält sich innerhalb und außerhalb Ihrer IDE konsistent.
Milosmns

52

Ich habe Could not read from remote repositoryvor kurzem Fehler bekommen , als ich mit meinem gearbeitet habeRepository. Meine Angaben:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Einstellungen -> Versionskontrolle -> Git -> ausführbare SSH-Datei -> Eingebaut
  • Fedora Linux

Geben Sie hier die Bildbeschreibung ein

Natürlich traten diese Probleme nur auf, wenn versucht wurde, von der IDE aus zu drücken, zu ziehen, zu holen usw. - die Ausführung derselben Befehle über die Befehlszeile funktionierte wie ein Zauber.

Lösung, die für mich funktioniert hat

Ich wollte nicht von der Built-Inausführbaren SSH-Datei zu wechseln Native, hauptsächlich, weil mein nativer SSH-Client mich jedes Mal nach dem Kennwort fragt, wenn ich versuche, mit dem Remote-Repository zu synchronisieren.

Ich habe dieses Problem gelöst, indem ich von der SSH-Remote-URL zur HTTPS-URL gewechselt habe. Laut dieser GitHub-Hilfeseite wird empfohlen, anstelle von SSH eine HTTPS-URL zu verwenden .

Ändern der Remote-URL von SSHnachHTTPS

Gehen Sie in IntelliJ IDEA zu VCS -> Git -> Fernbedienungen ... , wählen Sie eine Zeile mit "Ursprung" aus und klicken Sie auf die Schaltfläche "Bearbeiten". Wenn Sie Ihr Repository auf GitHub hosten, ersetzen Sie Ihre SSH-URL von:

git@github.com:USERNAME/REPOSITORY.git

zu:

https://github.com/USERNAME/REPOSITORY.git

Sie können Ihre HTTPS-URL auch von Ihrer GitHub-Repository-Homepage abrufen. Klicken Sie auf die Schaltfläche "Klonen oder Herunterladen" und dann auf den Link "HTTPS verwenden", um die HTTPS-URL Ihres Repositorys anzuzeigen:

Geben Sie hier die Bildbeschreibung ein

UPDATE 2018-03-13

JetBrains hat gerade IntelliJ IDEA 2017.3.5 veröffentlicht, das einen Fix für den SSH-Zugriff auf GitHub enthält - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -zu-Github /


2
Dies ist die Lösung, die für mich auf einem MacBook Pro (PHPStorm 2017.3.4) (30. Januar 2018 vor dem angegebenen 1/31 erforderlichen Erstellungsdatum) funktioniert hat.
Edward Barnard

1
Diese Lösung hat funktioniert. Normalerweise besteht das Problem darin, dass viele Benutzer versuchen, den SSH-Schlüssel zum Definieren von Remote zu verwenden, aber es wird ein Fehler angezeigt. Der Wechsel von SSH zu HTTPS ist meistens die Lösung.
Kourosh

1
Verwenden Sie den Link basierend auf https Slove mein Problem auf PhpStorme Version 2018.1.5
Dmitri

1
Diese Lösung funktionierte für mich auf dem MacBook Pro, Intellij IDEA.
Shaojun Lyu

1
Funktioniert auch mit GitLab, um die URL in den https-Link zu ändern.
Meister James

23

Der in IntelliJ integrierte SSH-Client scheint seinen zu hashenknown_hosts , aber der, den ich hatte, hatte seine Hostnamen im Klartext.

Als ich die Datei löschte und IntelliJ eine neue erstellen ließ, mit nur meinem (gehashten) GitLab-Server und sonst nichts, funktionierte es.

Es ist auch nicht möglich, es zu mischen - behalten Sie einige nicht verwaschene Einträge zusammen mit gehashten Einträgen für IntelliJ. Sie müssen also Ihre anderen SSH-Clients konfigurieren für die Verwendung von Hash-Hosts .


14
  1. Gehen Sie zu Einstellungen-> Git-> Native in Dropdown-Liste für ausführbare SSH-Dateien auswählen. (Wenn es nicht ausgewählt ist)
  2. Kopieren Sie den HTTPS-Link aus Ihrem Github-Repository.
  3. Gehen Sie zu VCS-> Git-> Fernbedienungen.
  4. Bearbeiten Sie den Ursprung und fügen Sie den HTTPS-Link in das URL-Feld ein.
  5. Drücken Sie Ctrl+Shift+kund schieben Sie das Projekt in das Repository. Es klappt.

1
Wo ist die Verbindung zwischen SSH und dem Ersetzen der URLs durch das HTTPS-Protokoll?
sweisgerber.dev

Ich will nur wissen, wo um alles in der Welt hat hier jemand Github erwähnt?
Emad Ha

Das hat bei mir funktioniert. Es hat mich nach meinen Bitbucket-Anmeldeinformationen gefragt, dann ist es gut zu gehen.
Marlon

13

in pyCharm,

file|
    v-->settings|
                v-->Version Control|
                                   v-->Git

Hier wechseln Sie SSH executablevon Built-ininNative

dann drücken Sie applyundclose


11

Ich habe dieses Problem gelöst, indem ich das Remote-Repository erneut hinzugefügt habe: VCS -> Git -> Remotes.


4
Keine gute Option für meinen Fall ... Jetzt kann ich sie nicht erneut hinzufügen und erhalte die Meldung " Ungültiger Remote-URL-Test fehlgeschlagen: Remote-URL-Test fehlgeschlagen: Konnte nicht aus Remote-Repository lesen. " Hinweis: Ich kann eine Verbindung herstellen durch git cli github.
Ricardo

1
Gleiches Problem wie @ Ricardo
Uri Goren

@uri keine der Lösungen hat bei mir funktioniert. Ich habe 2018 EAP installiert, wodurch ein im Dezember 2017 gemeldetes Problem behoben wurde . Es hat endlich funktioniert! Siehe auch den Beitrag Update-SSH-Schlüssel-zur-Verwendung-neuer-Passphrase
Ricardo

Ich habe der Frage Kommentare hinzugefügt, aber sie wurden versteckt. Also habe ich auch eine Antwort hinzugefügt .
Ricardo

Aus unbekannten Gründen funktioniert es für PHPStorm 2017.4. Vielen Dank!
Maksim B.

5

Was @yabin ya sagt, ist eine coole Lösung. Erinnern Sie sich nur daran: Wenn Sie immer noch das gleiche Problem haben, gehen Sie zu Einstellungen-Versionskontrolle-GitHub und deaktivieren Sie das Kontrollkästchen Clone git repositories using ssh.


5

Sie müssen einen neuen SSH-Schlüssel generieren und ihn Ihrem SSH-Agenten hinzufügen. Dafür solltest du diesem Link folgen .

Nachdem Sie den öffentlichen Schlüssel erstellt und Ihrem Github-Konto hinzugefügt haben, sollten Sie die integrierte Option (nicht native) unter Einstellung-> Versionskontrolle -> Git -> ausführbare SSH-Datei in Ihrer Intellij-Idee verwenden.


1
Für mich ist der Wechsel zur NativeLösung des Problems auf Mac
Jeroen Vermeulen - MageHost

Ich hatte ungefähr eine Woche lang mit diesem Problem zu kämpfen (zum Glück konnte ich in der Zwischenzeit die Git-Befehlszeile verwenden). Als ich es schließlich löste, wurden meine SSH-Schlüssel neu generiert, aber ich musste auch meinen Computer neu starten und die Befehlszeile verwenden ssh-add.
Crenguta S

3

Wir haben kürzlich von IntelliJ 12 auf IntelliJ 14 Ultimate aktualisiert und sind auch auf dieses Problem gestoßen. Unsere Lösung bestand darin, den Proxy in den Einstellungen zu deaktivieren. Wir haben auch aufgehört, uns die Passwörter einmal zu merken, sind uns aber möglicherweise nicht sicher, ob dies hilft. Die Proxy-Einstellungen finden Sie unter Dateieinstellungen-Darstellung & Verhalten-Systemeinstellungen-HTTP-Proxy.


Das ist interessant! Sie hatten also den gleichen Stacktrace?
stuXnet

Wir hatten die gleiche Stapelverfolgung (ich habe die Antwort übrigens ein wenig geändert)
Koen de Roo

3

Dies hat mir geholfen, das aktuelle Problem zu beheben

Wenn Sie macOS Sierra 10.12.2 oder höher verwenden, müssen Sie Ihre ~ / .ssh / config-Datei ändern, um automatisch Schlüssel in den ssh-agent zu laden und Passphrasen in Ihrem Schlüsselbund zu speichern.

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

Quelle


2

Ich habe dieses Problem gelöst, indem ich das Passwort für den SSH-Schlüssel in PuTTY entfernt habe.


2

Ich habe dieses Problem behoben, indem ich dem SSH-Agenten im Befehl meinen privaten SSH-Schlüssel hinzugefügt habe:

$ ssh-add -K ~/.ssh/id_rsa

Und Einstellung Settings --> Version Control --> Git, und dann, in der SSH ausführbaren Dropdown - Liste wählenNative


1

Keine Lösung / Problemumgehung, aber vielleicht eine Antwort auf die Frage 'Was könnte das Problem sein?':

Gitlab und die in der SSH-Bibliothek integrierten "Jetbrains" funktionieren nicht gut zusammen. Die Bibliothek möchte einen SHA1-basierten Schlüsselaustauschalgorithmus verwenden, wobei gitlab (Standard) nur SHA2-basierte Schlüsselaustauschalgorithmen zulässt.

Dies wurde mindestens für TeamCity gemeldet ( https://youtrack.jetbrains.com/issue/TW-47704) ).

Die Tatsache, dass dies auch die Ursache für Ihr Pull / Push-Problem in IntelliJ sein kann, und auch mein Push-Problem in PhpStorm basiert auf den ASSUMPTION-Jetbrains, die für ihre gesamte Software dieselbe "integrierte Bibliothek" verwenden.


0

Ich hatte dieses Problem mit einer Gabel aus einem Online-Kurs. Ich habe meine Gabel geklont und bin auf einen Berechtigungsfehler gestoßen. Ich konnte nicht verstehen, warum es darauf bestand, mein Benutzer von meiner anderen Firma zu sein. Aber wie der vorherige Kommentator erwähnte, hatte ich die Clone git repositories using sshEinstellung überprüft und vergessen, meinem neuen Konto einen SSH-Schlüssel hinzuzufügen. Also habe ich es getan und konnte dann immer noch nicht pushen, weil ich DIESEN Fehler bekommen habe. Ich habe es gelöst, indem ich mit dem Github Desktop-Client gepusht habe.

Imbissbuden:

  1. Wenn Sie ein neues GitHub-Konto eröffnen, müssen Sie einen SSH-Schlüssel hinzufügen
  2. Verwenden Sie unterschiedliche SSH-Schlüssel für unterschiedliche Konten
  3. Im Allgemeinen stoße ich bei jedem Projekt mindestens ein- oder zweimal auf ein GitHub-Problem in IntelliJ. Stellen Sie sicher, dass Sie eine Kopie des GitHub-Desktops haben, und laden Sie Ihre Projekte hinein. Es kann und wird Ihnen bei vielen Problemen helfen, auf die Sie möglicherweise mit Intellij stoßen - nicht nur bei diesem. Es ist eigentlich ein wirklich netter GUI-Client und kostenlos!
  4. Es ist wahrscheinlich sinnvoll, das zu tun, was @yabin vorschlägt, und den nativen Client auf einem Mac zu verwenden

0

Das einzige, was in meinem Fall geholfen hat (Switch SSH-Executabe hat nicht funktioniert) war, das Git- und Git-Flow-Plugin zu deaktivieren, Intellij neu zu starten und diese Plugins erneut zu aktivieren ...


0

Vergessen Sie nicht, Ihren Systemadministrator zu kontaktieren.

Weil in meinem Fall alles richtig konfiguriert war (SSH wurde ebenfalls hinzugefügt), aber ich habe den gleichen Fehler erhalten

Repository-Zugriff verweigert. fatal: Konnte nicht aus dem Remote-Repository lesen.

Der Grund war, dass ich nur Lesezugriff auf dieses Repository hatte. Überprüfen Sie dies daher als Erstes, ohne Ihre wertvolle Zeit zu verschwenden. Danke dir.


Sie sind java.io.IOException: Padding in RSA public key!in das Protokoll aufgenommen worden, wenn keine ausreichenden Berechtigungen vorhanden sind? Das ist interessant und könnte auf einen Fehler in der SSH-Behandlung von IntelliJ hinweisen.
stuXnet

0

Wenn alles andere fehlschlägt, gehen Sie einfach zu Ihrem Terminal und geben Sie aus Ihrem Ordner Folgendes ein:

git push origin master

So wollten es die Götter ursprünglich haben.


0

Ich hatte dieses Problem kürzlich mit WebStorm ( Februar / 2018 ) und keine der (damaligen) vorherigen Lösungen funktionierte für mich. Nachdem ich einige Stunden mit der Fehlerbehebung und Recherche verbracht hatte, installierte ich die EAP-Version 2018 und jetzt funktioniert sie!


Ein neues Problem , das im Dezember 2017 auf dem Subsystem IntelliJ Idea> VCS / Git gemeldet wurde und in Build 181.2445 (oder einem neuesten Build nach dem 31. Januar 2018) behoben wurde.

Siehe auch den Beitrag Update-ssh-Schlüssel-zur-Verwendung-neuer-Passphrase


Danke für den Link. Für andere TL; DR war der Hauptkommentar für mich Nate: "Eine Lösung, die für mich funktioniert hat: unter Einstellungen> Aussehen und Verhalten> Systemeinstellungen> Kennwörter ..." ... Wechseln Sie zu Nicht speichern, vergessen Sie Kennwörter nach dem Neustart Ziehen Sie und ziehen Sie ihn dann zurück.
Matthew Weber

0

Das Problem ist in meinem PC gelöst.
Einstellungen -> Versionskontrolle -> Git , und wählen Sie dann in der Dropdown-Liste der ausführbaren SSH-Datei die integrierte Option aus.

und installieren Sie git ältere Version so etwas wie 2.14.2 .
Es funktioniert gut!


0

Überprüfen Sie die Idea-Proxy-Einstellungen, wenn Sie versuchen, eine Verbindung zu Cloud-Diensten wie Github oder Bitbucket herzustellen. Dies kann durch Suchen nach zu installierenden Plugins oder durch Suchen nach Software-Updates im helpMenü erfolgen. Wenn die Internet- / Proxy-Einstellungen nicht korrekt sind, fügen Sie gültige Einträge hinzu oder setzen Sie sie aufauto


0

Dies hat das Problem für mich (ich verwende SSH, nicht HTTPS und das native Git, nicht das integrierte) unter MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4 behoben:

Datei -> Caches ungültig machen und neu starten


0

Ich habe das Problem einfach gelöst, indem ich sichergestellt habe, dass ich die richtige Git-SSH-URL ohne Leerzeichen habe:

git@github.com:USERNAME/REPOSITORY.git


0

Ich habe alle oben genannten Lösungen ausprobiert (Native, Ändern der URL des VCS-Repositorys, Aktualisieren von Git, Aktualisieren von IDEA, Ungültigmachen von Caches), aber nichts hat mir geholfen. Endlich habe ich eine Lösung gefunden, die für mich funktioniert.

LÖSUNG: Ich habe Idea geschlossen und den Inhalt der Datei durch Folgendes ersetzt ~\.IntelliJIdea20xx.x\config\options\git.xml:

<application>
  <component name="Git.Application.Settings">
    <option name="SSH_EXECUTABLE" value="IDEA_SSH" />
  </component>
</application>

Dann habe ich IDEA gestartet, versucht, das SSH GIT-Repository auszuchecken, und es funktioniert, und vorhandene Projekte funktionieren auch. Interessant ist, dass das Repository nicht funktioniert, wenn ich in den Ideeneinstellungen zu NATIVE wechsle.


0

Ich hatte das gleiche Problem. Ich habe Bitbucket verwendet und Probleme beim Abrufen / Aktualisieren des Repositorys auf Intellij. Versucht, auf native und wieder auf eingebaute zu wechseln, aber es hat nicht funktioniert. Dann wurde mir klar, dass ich den SSH-Schlüssel mit einer Passphrase generiert hatte.

Ich habe den Schlüssel ohne die Passphrase neu generiert und ihn dann dem Bitbucket hinzugefügt. Es funktionierte !


0

Ich habe die NativeOption ausprobiert , funktioniert aber nicht für mich. Generiere den SSH-Schlüssel schließlich auf alte Weise neu und füge die -mOption im ssh-keygenBefehl hinzu. auch IDEA funktioniert mit build-inOption als gut.

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."

0

Wenn Sie die Remote-URL hinzufügen, ändern Sie diese

https://username@bitbucket.org/usernameowner/project-name.git

dazu

https://bitbucket.org/usernameowner/project-name.git



-1

Stellen Sie sicher, dass Sie den Link zum Git-Repository auf die HTTPSOption geändert haben, nachdem Sie in den IntelliJ-Einstellungen "Native" ausgewählt haben, wenn SSHdies nicht funktioniert.

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.