git with IntelliJ IDEA: Nie można odczytać ze zdalnego repozytorium


260

Od kilku tygodni nie jestem w stanie wyciągać ani wypychać z lub do zdalnego repozytorium. Myślałem, że tak się stanie podczas aktualizacji do IntelliJ IDEA 14, ale mogę odtworzyć problem również z IDEA 13.1.5.

W podpowiedzi jest napisane: „Niepowodzenie pobierania zakończone niepowodzeniem: Nie można odczytać ze zdalnego repozytorium”.

a wyjątek na karcie Kontrola wersji brzmi

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.

Korzystając z wbudowanego terminala IntelliJ, git -c core.quotepath=false fetch origin --progress --prunedziała, działa tak, jak powinno.

Według stacktrace, wydaje się, że jest problem z moim KnownHosts, więc usunąłem nasz serwer git z ~/.ssh/known_hosts, mając nadzieję, że IntelliJ włoży go ponownie. Ale problem nadal pojawia się podczas aktualizacji za pomocą interfejsu użytkownika i nie zapisano nowego wpisu known_hosts; myśląc o buforowaniu pliku, zrestartowałem IntelliJ, bez powodzenia.

Kiedy robię inną git fetchz terminala, teraz pojawia się pytanie, czy chcę na stałe dodać serwer. Po tym został napisany known_hostsponownie, ale IntelliJ nadal nie pozwala mi aktualizować mojego projektu.

Nie znalazłem nic na temat tego zachowania online, więc sądzę, że nie jest to znany błąd w nowej wersji IntelliJ. Mimo to zaktualizowałem do wersji 14.0.2, ale problem nadal istnieje.

IntelliJ jest skonfigurowany do korzystania z wbudowanego pliku wykonywalnego SSH.

Czy ktoś ma pojęcie, co może być problemem?


Czy ręcznie dodałeś klucz SSH do swojego repozytorium git?
aurelius,

@ aurelius tak, używamy GitLab i opublikowałem go tam w moim profilu.
stuXnet,

IntelliJ jest niezadowolony z pary kluczy publiczny / prywatny. Jak to wygenerowałeś?
twój

@yole Próbowałem obu puttygeni Git GUI, jak to była moja pierwsza myśl. Czy na pewno chodzi o moją parę kluczy? Wydaje się, że wyjątkiem są znane hosty: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet

Nie jestem pewien co do negatywnej opinii - wydaje się, że występuje problem z hashowanymi / nieskrytymi wpisami w znanych serwerach. Zajmę się tym trochę dalej i odpowiem na pytanie.
stuXnet

Odpowiedzi:


721

Settings --> Version Control --> Git, a następnie w menu wykonywalnym SSH wybierz Native

Kontrola wersji: Git: plik wykonywalny SSH: dla bieżącego projektu

Jeśli to nie pomoże, upewnij się, że Twoja wersja natywna sshi gitklienci mają wystarczająco aktualną wersję.


5
Wiem, że można zmienić implementację SSH, nawet wyraźnie napisałem, że używam wbudowanego pliku wykonywalnego (to, czego nie napisałem: natywny nie działa dla mnie w systemie Windows) Ale Twój post nie odpowiada moje pytanie, jaki może być problem z wbudowanym plikiem wykonywalnym.
stuXnet,

22
Nie może mi pomóc
hellboy

8
@Jimbo Tylko moje założenie, ale tak to rozumiem: Wbudowany używa innego „użytkownika” w twoim repozytorium, wcześniej „użytkownik” mógł przesyłać pliki i zmiany. Ten „użytkownik” został zresetowany w aktualizacji i nie jest już w stanie tego zrobić. Natywny korzysta z konta zalogowanego na komputerze.
AlexG

10
Dziwne. Miałem 3 osobne komputery, wszystkie zaczęły mi to robić po ponad 2 latach pracy. to naprawiło. WTF
Nicholas DiPiazza

11
@NicholasDiPiazza Jest to związane z usuwaniem przez Github standardów kryptograficznych github.com/blog/2507-weak-cryptographic-standards-removed . Zmiana ta ma również wpływ na inne oprogramowanie korzystające z bibliotek „wbudowanych” (np. TeamCity). Twój natywny klient git jest prawdopodobnie aktualny, dlatego ten krok go naprawia.
philsch

68

Wybierz Preferencje> Kontrola wersji> Git. Upewnij się, że plik wykonywalny SSH jest ustawiony na „Native”. (Jeśli tak jest, przełącz go na „Wbudowane”, zastosuj, a następnie ponownie przełącz na „Natywny”).

Jeśli to nie rozwiąże problemu, sugeruję pobranie klienta Git, takiego jak klient GitHub (bezpłatna aplikacja komputerowa) i próba synchronizacji projektu za pośrednictwem aplikacji. Następnie wróć do IntelliJ i sprawdź, czy działa.


1
Działa dobrze również w Android Studio. Ten problem doprowadzał mnie do szału, dzięki @Farbod Jan!
Javad Sadeqzadeh

1
Toggling SSH executabledziałało dla mnie. Też byłem już włączony Native.
nic.

1
Dla wszystkich rozważających powrót do wbudowanego: rozważ najpierw aktualizację swojego macierzystego SSH. Natywny plik wykonywalny jest używany w całym systemie operacyjnym i będzie zachowywał się spójnie wewnątrz i na zewnątrz Twojego IDE.
milosmns,

52

Could not read from remote repositoryNiedawno zacząłem pojawiać się błąd podczas pracy z moimmagazyn. Moje specyfikacje:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Ustawienia -> Kontrola wersji -> Git -> Plik wykonywalny SSH -> Wbudowane
  • Fedora Linux

wprowadź opis zdjęcia tutaj

Oczywiście problemy te występowały tylko podczas próby wypychania / pobierania / pobierania itp. Z IDE - wykonywanie tych samych poleceń z wiersza poleceń działało jak urok.

Rozwiązanie, które działało dla mnie

Nie chciałem przełączać się z Built-Inpliku wykonywalnego SSH na Native, głównie dlatego, że mój natywny klient SSH prosi mnie o hasło przy każdej próbie synchronizacji ze zdalnym repozytorium.

Rozwiązałem ten problem, przechodząc ze zdalnego adresu URL SSH na adres URL HTTPS. Zgodnie z tą stroną pomocy GitHub - zaleca się stosowanie adresu URL HTTPS zamiast SSH .

Zmiana zdalnego adresu URL z SSHnaHTTPS

W IntelliJ IDEA przejdź do VCS -> Git -> Piloty ... , wybierz wiersz zawierający „pochodzenie” i kliknij przycisk edycji. Jeśli hostujesz swoje repozytorium na GitHub, zastąp adres URL SSH z:

git@github.com:USERNAME/REPOSITORY.git

do:

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

Możesz również uzyskać adres URL HTTPS ze strony głównej repozytorium GitHub - kliknij przycisk „Klonuj lub pobierz”, a następnie kliknij link „Użyj HTTPS”, aby wyświetlić adres URL HTTPS repozytorium:

wprowadź opis zdjęcia tutaj

AKTUALIZACJA 2018-03-13

JetBrains właśnie wydał IntelliJ IDEA 2017.3.5, który zawiera poprawkę dostępu SSH do GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github /


2
Jest to rozwiązanie, które działało dla mnie na MacBooku Pro, PHPStorm 2017.3.4) (30 stycznia 2018 r. Przed zanotowaną konieczną datą kompilacji 1/31).
Edward Barnard,

1
To rozwiązanie działało, zwykle problem polega na tym, że wielu użytkowników próbuje użyć klucza SSH do zdefiniowania zdalnego, ale daje to błąd. Przejście z SSH na HTTPS jest rozwiązaniem najczęściej.
Kourosh,

1
za pomocą linku opartego na https slove mój problem na PhpStorme w wersji 2018.1.5
dmitri

1
To rozwiązanie działało dla mnie na MacBooku Pro, Intellij IDEA.
shaojun lyu

1
Współpracuje również z GitLab w celu zmiany adresu URL na link https.
Mistrz James

23

Wygląda na toknown_hosts , że wbudowany klient SSH IntelliJ ma skrót , ale ten, który miałem, miał nazwy hostów w postaci czystego tekstu.

Kiedy usunąłem plik i pozwoliłem IntelliJowi utworzyć nowy, tylko z moim (zaszyfrowanym) serwerem GitLab i niczym innym, zadziałało.

Nie można go również mieszać - zachowaj niektóre nieprzypisane wpisy razem z wpisanymi hasłami dla IntelliJ. Musisz więc skonfigurować innych klientów SSH, aby korzystali z hostowanych skrótów .


14
  1. Idź do Ustawienia-> Git-> Wybierz natywny w menu wykonywalnym SSH. (Jeśli nie jest zaznaczone)
  2. Skopiuj link HTTPS z repozytorium Github.
  3. Przejdź do VCS-> Git-> Piloty ..
  4. Edytuj źródło i wklej link HTTPS w polu URL.
  5. Naciśnij Ctrl+Shift+ki pchnij projekt do repozytorium. To działa.

1
Gdzie jest połączenie między SSH a zastępowaniem adresów URL protokołem HTTPS?
sweisgerber.dev

chcę tylko wiedzieć, gdzie, u licha, ktoś wspomniał o Githubie?
Emad Ha

To zadziałało dla mnie, poprosiło mnie o poświadczenia bitbucket, a potem dobrze jest iść.
Marlon

13

w pyCharm,

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

Tutaj zmień SSH executablez Built-innaNative

następnie naciśnij applyiclose


11

Rozwiązałem ten problem, ponownie dodając zdalne repozytorium: VCS -> Git -> Piloty.


4
Nie jest to dobra opcja w moim przypadku ... Teraz nie mogę dodać go ponownie, pojawia się komunikat „ Nieprawidłowy zdalny [...] test zdalnego adresu URL nie powiódł się: nie można odczytać ze zdalnego repozytorium. ” Obs: Mogę się połączyć github przez git cli.
Ricardo

1
Ten sam problem co @ Ricardo
Uri Goren

@uri żadne z rozwiązań nie działało dla mnie. Zainstalowałem EAP 2018, który naprawił problem zgłoszony w grudniu 2017 roku. W końcu zadziałało! zobacz także wpis Update-ssh-key-to-use-new-passphrase
Ricardo

Dodałem komentarze do pytania, ale zostały ukryte. Więc też dodałem odpowiedź .
Ricardo

Z nieznanego mi powodu działa dla PHPStorm 2017.4. Dzięki!
Maksim B.

5

To, co mówi @yabin ya, jest fajnym rozwiązaniem, wystarczy przypomnieć, że: jeśli nadal masz ten sam problem, przejdź do Ustawienia-Kontrola wersji-GitHub i odznacz Clone git repositories using ssh.


5

Musisz wygenerować nowy klucz SSH i dodać go do swojego agenta ssh. W tym celu należy skorzystać z tego linku .

Po utworzeniu klucza publicznego i dodaniu go do konta github, powinieneś użyć wbudowanej (nie macierzystej) opcji w Ustawienia-> Kontrola wersji -> Git -> SSH wykonywalny w swoim Intellij Idea.


1
Dla mnie przejście do Nativerozwiązania problemu na Macu
Jeroen Vermeulen - MageHost

Walczyłem z tym problemem przez około tydzień (na szczęście w międzyczasie mogłem skorzystać z wiersza poleceń git) .. Jak w końcu to rozwiązałem, regenerowałem klucze SSH, ale musiałem zrestartować komputer i użyć wiersza poleceń ssh-add.
Crenguta S

3

Niedawno zaktualizowaliśmy IntelliJ 12 do IntelliJ 14 Ultimate i napotkaliśmy ten problem. Naszym rozwiązaniem było wyłączenie serwera proxy w ustawieniach. Przestaliśmy też pamiętać hasła raz, ale możemy nie być pewni, czy to pomoże. Ustawienia serwera proxy znajdują się w obszarze Ustawienia pliku Wygląd i zachowanie Ustawienia systemowe Serwer proxy HTTP.


To interesujące! Więc miałeś ten sam ślad na stosie?
stuXnet

Mieliśmy ten sam stacktrace (nieco zmieniłem odpowiedź btw)
Koen de Roo

3

pomogło mi to naprawić bieżący problem

Jeśli używasz systemu macOS Sierra 10.12.2 lub nowszego, musisz zmodyfikować plik ~ / .ssh / config, aby automatycznie ładować klucze do ssh-agent i przechowywać hasła w breloku.

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

źródło



2

Rozwiązałem ten problem, dodając mój prywatny klucz SSH do agenta ssh w poleceniu:

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

I ustawienie Settings --> Version Control --> Git, a następnie w menu wykonywalnym SSH wybierzNative


1

Nie rozwiązanie / obejście, ale być może odpowiedź na pytanie „co może być problemem”:

Gitlab i „jetbrains wbudowane w bibliotekę ssh” nie działają dobrze razem. Biblioteka chce używać algorytmu wymiany kluczy opartego na SHA1, gdzie gitlab (domyślnie) zezwala tylko na algorytm wymiany kluczy oparty na SHA2.

Zgłoszono to co najmniej dla TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

Fakt, że może to być również przyczyną twojego problemu z pull / push w IntelliJ, a także mój problem z push-push w PhpStorm opiera się na tym, że móżdżki jet ASSUMPTION używają tej samej „wbudowanej biblioteki” dla całego swojego oprogramowania.


0

Miałem ten problem z widelcem z jakiegoś kursu online. Sklonowałem widelec i napotkałem błąd uprawnień. Nie mogłem zrozumieć, dlaczego nalegało, żebym był moim użytkownikiem z innej firmy. Ale jak wspomniał poprzedni komentator, miałemClone git repositories using ssh sprawdziłem ustawienie i zapomniałem dodać klucz ssh do mojego nowego konta. Więc zrobiłem, a potem nadal nie mogłem naciskać, ponieważ dostałem TEN błąd. Sposób, w jaki to rozwiązałem, polegał na wypychaniu za pomocą klienta Github Desktop.

Na wynos:

  1. Po otwarciu nowego konta GitHub dodaj do niego klucz ssh
  2. Używaj różnych kluczy ssh dla różnych kont
  3. Ogólnie napotykam problem z GitHub na IntelliJ co najmniej raz lub dwa razy dla każdego projektu. Upewnij się, że masz kopię pulpitu GitHub i załaduj do niej projekty. Może i pomoże ci z wieloma problemami, z którymi możesz spotkać się z Intellij - nie tylko z tym. To naprawdę fajny klient GUI i za darmo!
  4. Prawdopodobnie ma sens robienie tego, co sugeruje @yabin i używanie natywnego klienta na komputerze Mac

0

Jedyną rzeczą, która pomogła w moim przypadku (przełącznik SSH-executabe nie działał) była dezaktywacja wtyczki git i git-flow, ponowne uruchomienie intellij i ponowna aktywacja tych wtyczek ...


0

Nie zapomnij skontaktować się z administratorem systemu.

Ponieważ w moim przypadku wszystko poprawnie skonfigurowałem (dodano także SSH), ale dostałem ten sam błąd

odmowa dostępu do repozytorium. fatal: Nie można odczytać ze zdalnego repozytorium.

powodem było to, że miałem dostęp tylko do odczytu do tego repozytorium. Dlatego bez marnowania cennego czasu sprawdź to przede wszystkim. Dziękuję Ci.


Masz java.io.IOException: Padding in RSA public key!dziennik, gdy nie ma wystarczających uprawnień? To interesujące i może wskazywać na błąd w obsłudze SSH IntelliJ.
stuXnet

0

Jeśli wszystko inne zawiedzie, po prostu przejdź do terminala i wpisz z folderu:

git push origin master

Tak pierwotnie chcieli Bogowie.


0

Ostatnio miałem ten problem z WebStorm ( luty / 2018 ) i żadne z (wówczas) poprzednich rozwiązań nie działało dla mnie. Po spędzeniu kilku godzin na rozwiązywaniu problemów i badaniach zainstalowałem wersję EAP 2018 i teraz działa!


Nowy problem zgłoszony w grudniu 2017 r podsystemie IntelliJ Idea> VCS / Git, który został naprawiony w kompilacji 181,2445 (lub dowolnej najnowszej kompilacji po 31 stycznia 2018 r.).

Zobacz także wpis Update-ssh-key-to-use-new-passphrase


Dzięki za link. Dla innych TL; DR kluczowym komentarzem dla mnie był Nate: „Rozwiązanie, które zadziałało dla mnie: w Ustawieniach> Wygląd i zachowanie> Ustawienia systemowe> Hasła ...” ... Przełącz na Nie zapisuj, zapomnij hasła po ponownym uruchomieniu , Wykonaj Pull, a następnie przełącz go z powrotem.
Matthew Weber

0

Problem został rozwiązany na moim komputerze.
ustawienia -> Kontrola wersji -> Git , a następnie w rozwijalnym menu SSH wybierz opcję wbudowaną .

i zainstaluj starszą wersję git, taką jak 2.14.2 .
Działa dobrze!


0

Sprawdź ustawienia serwera proxy Idea, jeśli próbujesz połączyć się z usługami w chmurze, takimi jak github lub bitbucket. Można to zrobić, szukając wtyczek do zainstalowania lub sprawdzając aktualizacje oprogramowania w helpmenu. Jeśli ustawienia Internetu / proxy są nieprawidłowe, dodaj prawidłowe wpisy lub ustaw je naauto


0

Naprawiłem to dla mnie (używam SSH, nie HTTPS i natywnego gita, nie wbudowanego) w MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Plik -> Unieważnij pamięć podręczną i uruchom ponownie


0

Rozwiązałem problem po prostu upewniając się, że mam poprawny adres URL git SSH bez żadnych spacji:

git@github.com:USERNAME/REPOSITORY.git


0

Wypróbowałem wszystkie powyższe rozwiązania (natywne, zmiana adresu URL repozytorium VCS, aktualizacja Git, aktualizacja IDEA, unieważnienie pamięci podręcznej), ale nic mi nie pomogło. W końcu znalazłem rozwiązanie, które działa dla mnie.

ROZWIĄZANIE: zamknąłem Idea i zastąpiłem zawartość pliku ~\.IntelliJIdea20xx.x\config\options\git.xmltym:

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

Potem zacząłem IDEA, spróbuj wyewidencjonować repozytorium SSH GIT i działa, a istniejące projekty również działają. Ciekawostką jest to, że po przejściu na NATIVE w ustawieniach pomysłów repozytorium nie działa.


0

Miałem ten sam problem. Używał bitbucket i miał problem z pobraniem / aktualizacją repozytorium na Intellij. Próbowałem zmienić na natywny i wrócić do wbudowanego, ale nie działało. Potem zdałem sobie sprawę, że wygenerowałem klucz ssh za pomocą hasła.

Ponownie wygenerowałem klucz bez hasła, a następnie dodałem go do bitbucket. Zadziałało !


0

Próbowałem Nativeopcji, ale dla mnie nie działa, w końcu zregeneruj klucz ssh w stary sposób i dodaj -mopcję w ssh-keygenpoleceniu. również IDEA działa z build-inopcją tak dobrze.

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

0

Podczas dodawania zdalnego adresu URL zmień go z tego

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

do tego

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



-1

Upewnij się, że zmieniłeś link do repozytorium git na HTTPSopcję po wybraniu „Natywny” w ustawieniach IntelliJ, jeśli SSHnie działa.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.