Błąd „Auth Failed” z EGit i GitHub

98

Zainstalowałem wtyczkę EGit w Eclipse Helios i próbuję jej używać z moim kontem GitHub, ale kiedy próbuję ją skonfigurować, pojawia się błąd „Auth Failed”.

Szukałem go w Google, ale bez powodzenia ... wydaje się, że jest to problem z moim hasłem, ale AFAIK EGit patrzy we właściwe miejsce ( /home/user/.ssh/id_rsa) i nie mam problemu z połączeniem przez sshlub gitklienta konsoli.

Niektóre blogi mówią, że jest to problem z identyfikatorem URI i parserem Egita, ale nadal nie znalazłem rozwiązania.

tehsis
źródło

Odpowiedzi:

140

Moja odpowiedź może być nieaktualna, ale mam nadzieję, że komuś się przyda.

  1. W Eclipse przejdź do Okno> Preferencje> Ogólne> Połączenia sieciowe> SSH2 (lub po prostu wpisz „SSH2” w polu filtru okna preferencji).

  2. W zakładce "Zarządzanie kluczami" naciśnij przycisk "Generuj klucz RSA ..." . Opcjonalnie możesz dodać komentarz (zwykle adres e-mail) i hasło do klucza. Hasło będzie używane podczas uwierzytelniania w GitHub.

  3. Skopiuj wygenerowany klucz publiczny (w polu tuż pod przyciskiem „Generuj klucz RSA ...”) i dodaj go do swojego konta GitHub.
  4. Naciśnij przycisk „Zapisz klucz prywatny ...” , aby zapisać swój prywatny klucz RSA w pliku. Domyślnie klucze są przechowywane w katalogu domowym SSH2 (patrz zakładka „Ogólne”).

Otóż ​​to! Teraz powinieneś być w stanie przekazać swój kod do repozytorium GitHub.

Andrei Petrenko
źródło
1
Mój klucz prywatny nie miał standardowej nazwy (id_rsa), więc nie był rozpoznawany jako taki. Dodałem go ręcznie, we wskazanych przez Ciebie oknach preferencji i działało dobrze.
muriloq
18
Zauważyłem, że po skonfigurowaniu klucza SSH, tak jak opisujesz, nie powinienem zmieniać nazwy użytkownika / hasła w polu uwierzytelniania (umieszczałem swoje dane logowania GitHub). Wartość domyślna w tym polu to nazwa użytkownika: git i hasło są puste.
harschware
1
To zadziałało dla mnie z repozytorium git BitBucket, chociaż musiałem ponownie uruchomić Eclipse.
artlung
8
pozostawienie nazwy użytkownika jako git i pustego hasła w końcu zadziałało.
Mike R
4
Oto proces dodawania wygenerowanego klucza RSA do konta github 1) zaloguj się do swojego konta github 2) ustawienia goto 3) po lewej stronie znajdziesz klucze SSH, kliknij je 4) następnie kliknij dodaj klucze SSH (teraz wklej klucz SSH które wygenerowałeś)
rajeev
27

Miałem dokładnie ten sam problem, ale znalazłem lekarstwo z raportu o błędzie Eclipse!

Zmienna środowiskowa o nazwie GIT_SSH musi być ustawiona wraz ze ścieżką do pliku wykonywalnego ssh [1].

Na przykład w systemie Ubuntu Linux (10.10 64bit):

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

Następnie wypychanie do repozytorium GitHub działa tak, jak powinno. Przetestowałem to z Eclipse Galileo i Indigo.

Problem jest naprawdę irytujący, a rozwiązanie nie jest przyjemne. Na razie, aby rozwiązanie było trwałe dla przynajmniej użytkowników Ubuntu, należy ustawić stałą zmienną env. Można to zrobić dodając polecenie eksportu do ~ / .profile lub ~ / .bashrc [2]. Na przykład:

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

A następnie uruchom ponownie Eclipse, aby odniosło skutek.

Źródła:

Akseli Palén
źródło
Zajmuję się tym problemem cały tydzień - Eclipse pod osx łączy się z GitHubem lub Asssemblą. Twoja poprawka działa dla mnie. Dzięki.
ianmayo
W systemie Windows openssh nie działa dla mnie. Musiałem użyć plinka. Zobacz moją odpowiedź.
Piotr Dobrogost
I zbliża się do opublikowanej poprawki. Na końcu raportu o błędzie ktoś pokazał, jak ręcznie pobrać najnowszy plik jar jsch i ręcznie go zainstalować, aby działał w ten sposób. Zamierzam po prostu skorzystać z tego rozwiązania env var i poczekać, aż ten plik jar jsch trafi do faktycznego wydania eclipse.
crowmagnumb
Rozwiązał mój problem. Dzięki.
Pedram,
O MÓJ BOŻE. Takie problemy sprawiają, że zastanawiam się, dlaczego Android użył Eclipse w pierwszej kolejności. Bardzo dziękuję za wskazówkę. To rozwiązało mój problem, a EGit / Eclipse był całkowicie niepomocny z „Auth Fail”
Calyth
16

Rozwiązałem to, wybierając httpjako protokół i podając moją nazwę użytkownika i hasło GitHub.

hari_sree
źródło
tak! W przeciwieństwie do wszystkiego, co czytałem, ale to zadziałało. (Eclipse Indigo)
Owen B
http lub https są znacznie prostsze niż ssh
Junchen Liu
Tak, ale są przypadki, w których musisz użyć ssh. Na przykład potrzeba uwierzytelniania dwuskładnikowego w BitBucket podczas pracy z repozytoriami. Możesz pracować przez ssh tylko wtedy, gdy potrzebujesz uwierzytelniania dwuskładnikowego.
Akshay Mahajan
10

Po spędzeniu godzin na szukaniu rozwiązania tego problemu, w końcu osiągnąłem złoty medal, wprowadzając zmiany, o których mowa na forum Eclipse .

Kroki:

Wymagania wstępne: mysysgit jest instalowany z domyślną konfiguracją.

1. Utwórz plik C: /Users/Username/.ssh/config (zastąp „Username” swoją nazwą użytkownika Windows 7 (np. C: /Users/John/.ssh/config)) i umieść w nim:

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

2. Spróbuj teraz skonfigurować zdalne repozytorium w Eclipse.

Twoje zdrowie. Powinien działać idealnie.

Rushal A
źródło
8

Musisz zainstalować msysgit, po zainstalowaniu musisz otworzyć Git Bash i wprowadzić tam następujące polecenia:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email [email protected] (your email)
$ ssh-keygen -C "[email protected]" -t rsa (your email)

Teraz wygenerowane klucze są w C:\Users\username\.ssh(w systemie Windows 7).
Następnie wczytaj zawartość swojego klucza publicznego do swojego projektu na Github
In Eclipse otwórz Window->Preferences->General->Network->SSH2i ustaw ~/.sshjako SSH Home

Następnie przejdź do Key Management tabi Załaduj istniejący klucz - ustaw tutaj swój klucz prywatny w ~/.ssh.

Następnie możesz przesłać swój projekt na Github (ale ustawiłem protokół ssh, a nie git + ssh).

gennad
źródło
Wielkie
5

Rozwiązałem ten sam problem z dodaniem mojego klucza do ssh;

ssh-add ~/.ssh/id_rsa 

następnie wprowadzono hasło i trzeba ponownie uruchomić.

volkan
źródło
4

Dla użytkowników * nix, którzy używają SSH:

Upewnij się, że nazwa użytkownika Twojego konta na komputerze lokalnym nie różni się od nazwy użytkownika konta na serwerze. Najwyraźniej eGit nie jest w stanie sobie z tym poradzić. Na przykład, jeśli twoja nazwa użytkownika na komputerze lokalnym to „jan”, a konto, którego używasz na serwerze, nazywa się „git”, np. Po prostu nie może się połączyć (i tak dla mnie). Jedyne obejście, jakie znalazłem, to upewnienie się, że masz identyczne nazwy użytkowników zarówno na komputerze lokalnym, jak i na serwerze.

Jeshurun
źródło
1
Masz jakiś pomysł, czy nadal tak jest? Dzisiejszego wieczoru walę głową w ścianę. Mój klucz prywatny jest chroniony hasłem, o które Eclipse / eGit nigdy nie prosi. Kiedy próbuję uruchomić zdalne, Eclipse po prostu wypluwa błąd „org.eclipse.jgit.transport.CredentialItem $ StringType Hasło dla .ssh id_rsa”
Vilsepi
2

My fourpenneth: moje klucze SSH zostały skonfigurowane w Cygwin, w C: \ cygwin \ home \ <user> .ssh, więc wskazałem SSH do tego folderu zamiast domyślnego (Win7) C: \ Users \ <user> \ ssh , zgodnie z tymi instrukcjami: http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

i używał protokołu ssh i działa dobrze. Próba użycia protokołu git nadal powoduje wyświetlenie komunikatu „Użytkownik nie jest obsługiwany przez protokół git”.

drkvogel
źródło
2

Dla ciebie, który, tak jak ja, już skonfigurował ci klucze ssh, ale nadal otrzymujesz błędy:

Upewnij się, że skonfigurowałeś pilota push . U mnie zadziałało, gdy otrzymałem oba komunikaty: „ Cannot get remote repository refs -problems” („... Hasło dla ...” i „Niepowodzenie autoryzacji” w oknie dialogowym „Wciśnij ...”).

Pod warunkiem, że już:

  1. Skonfiguruj klucze SSH za pomocą Github (Okno> Preferencje> Ogólne> Połączenia sieciowe> SSH2)

  2. Skonfiguruj swoje lokalne repozytorium (możesz postępować zgodnie z tym przewodnikiem )

  3. Utworzono repozytorium Github (ten sam przewodnik )

... oto jak to robisz:

  • Przejdź do widoku Repozytoria Git (Okno> Pokaż widok> Inne> Repozytoria Git)
  • Rozwiń swoje repozytorium i kliknij prawym przyciskiem myszy Piloty -> „Utwórz pilota”
  • „Remote Name”: origin, „Configure push”: zaznaczone -> kliknij „OK”
  • Kliknij „Change ...” przycisk
  • Wklej swój identyfikator URI git i wybierz protokół ssh -> kliknij „Zakończ”
  • Teraz kliknij „Zapisz i wypchnij” i TERAZ powinieneś otrzymać prośbę o hasło -> wprowadź tutaj hasło klucza publicznego (pod warunkiem, że ZID (i powinieneś) ustawić hasło do swojego klucza publicznego) -> kliknij „OK”
  • Teraz powinno pojawić się okno potwierdzenia z informacją „ Przesłane do Twojego repozytorium - pochodzenie” -> kliknij „OK”
  • Wypchnij do wyższego poziomu , ale tym razem użyj „Skonfigurowane repozytorium zdalne” jako docelowego repozytorium Git
  • Idź po zasłużoną kawę!
zrozumiałem
źródło
1

Zaktualizowałem wtyczkę o nocne kompilacje: http://www.eclipse.org/egit/download/

Po aktualizacji zadziałało dla mnie. (Eclipse Helios, Mac OS X)

fbrandel
źródło
To nadal nie działa dla mnie :( od czasu, gdy to opublikowałem, aktualizowano go dwa razy. Może to być błąd w systemie GNU / Linux
tehsis
1

Czy próbowałeś zamiast tego użyć protokołu ssh na git + ssh? Mam ten sam problem i to go rozwiązało, mimo że oficjalna dokumentacja mówi o używaniu git + ssh

kamisama
źródło
1

W systemie Windows ustawienie GIT_SSHopenssh, które jest dostarczane z msys git, nie działało (Eclipse zawiesił się podczas zatwierdzenia). Ustawienie go na TortoisePlink rozwiązało problem (myślę, że oryginalny plink też by działał). Dodatkowym bonusem jest teraz, że Eclipse używa kluczy przechowywanych w konkursie.

Piotr Dobrogost
źródło
1

Rozwiązałem to, wybierając https jako protokół, a następnie dodając moją nazwę użytkownika i hasło na githubie

eden
źródło
1

W widoku GIT, w którym masz swoje repozytoria, zobaczysz strukturę, taką jak:

  • gałęzie
  • tagi
  • Bibliografia
  • piloty
  • itp...

Kliknij piloty, kliknij prawym przyciskiem myszy adres URL tamtego repozytorium i wybierz „Zmień dane logowania”.

Fico
źródło
0

Znalazłem post na forach Eclipse, który rozwiązał ten problem za mnie.

Daniel Jonsson
źródło
0

Miałem ten sam problem, który wydaje się być związany z konfiguracją. Aplikacja github mac osx utworzyła klucz prywatny ssh o nazwie github_rsa

W swoim Eclipse przejdź do Window > Preferences > Network Connections > SSH2

Na karcie ogólnej powinieneś zobaczyć stronę główną SSH2 /Users/<you username>/.ssh, prawdopodobnie zobaczysz id_dsa, id_rsa zdefiniowane jako klucze prywatne.

Kliknij „Dodaj klucz prywatny” i wybierz znajdującą się na github_rsa /Users/<you username>/.ssh

scottyab
źródło
0

JEŚLI MASZ PLIK PEM : W Eclipse przejdź do Okno> Preferencje> Połączenia sieciowe> SSH2 , a następnie dodaj ścieżkę do pliku PEM do „Kluczów prywatnych”, co powinno rozwiązać problem.

msamadi
źródło
0

Chciałem kiedyś upublicznić poprawkę kodu Google i dostałem ten sam błąd. Zaczęło się od tego filmu, ale w sekcji Zapisz i opublikuj wystąpił błąd. Widziałem, że jest kilka pytań dotyczących tego. Niektórzy są użytkownikami systemu Windows, ci mają największe szczęście, ponieważ zwykle nie ma problemów z uprawnieniami, a niektórzy są użytkownikami Linuksa.

Mam komputer Mac do zastosowań mobilnych i bardzo często napotykam ten problem. Źródłem tego problemu są rozwiązania „niezależne od platformy”, które nie są wystarczająco ważne dla komputerów Mac i nie mają dostępu do pęku kluczy, w którym są przechowywane certyfikaty, pliki .pem i tak dalej.

Chciałem tylko nie wprowadzać żadnych ustawień środowiska ani wiersza poleceń, tylko proste kliknięcia oparte na GUI, jak zwykły użytkownik.

Połowa część została wykonana za pomocą wtyczki Eclipse Git, druga część (wypchnij do Github) została wykonana za pomocą Mac Github

Miło i łatwo :)

Wszystko można zrobić z tą natywną aplikacją, gdybym zaczął się jej uczyć, potrzebuję tylko od niego funkcji push.

Mając nadzieję, że kiedyś pomoże to użytkownikowi Maca.


źródło
0

Odkryłem, że jeśli skonfiguruję uwierzytelnianie dwuetapowe na githubie, Eclipse nie będzie w stanie połączyć się z Githubem - co ma sens, ponieważ uwierzytelnianie dwuetapowe na githubie wymaga podania numeru z SMS-a (a Eclipse nie mieć te informacje).

Jeśli taki jest Twój scenariusz, możesz rozważyć dezaktywację dwuetapowego uwierzytelniania w github i sprawdzić, czy to pomaga.

kevlaria
źródło
0

Myślę, że w przypadku istniejących kluczy ssh jest to błąd w Eclipse Juno 3.8.

Co ja zrobiłem:

1) Załaduj istniejący klucz, przechodząc do: Okno> Preferencje> "Wyszukaj w ssh"> Karta Zarządzanie kluczami> Załaduj istniejący klucz> Wybierz klucz prywatny, który już masz

2) Zapisz ten klucz, klikając przycisk Zapisz klucz prywatny . Nazwijmy to id_dsa_github

3) Teraz sprawdź, czy pchanie i ciągnięcie działają, czy nie. Powinno być.

4) Teraz na karcie ogólnej usuń klucz prywatny id_dsa_github i dodaj poprzedni klucz prywatny, klikając przycisk Dodaj klucz prywatny

Teraz możesz już iść. Wydaje mi się, że zrobienie wszystkich rzeczy z EGit do rejestracji zajmuje co najmniej jeden raz .

Soham
źródło
0

Mam ten sam problem.

Pomyślałem, że ma to coś wspólnego z moimi danymi logowania i uwierzytelnianiem.

W końcu zdałem sobie sprawę, że skonfigurowany przeze mnie URI nie jest wariantem HTTP.

Próbowałem wypchnąć do SSH URI mojego Gita z konfiguracją HTTP.

Sprawdź swój adres URL w

Git Perspective> Remotes> Origin> Configure Fetch> Change> Upewnij się, że prtocal to HTTPS, a adres URL to https .

MohanRaj
źródło
0

Mógłbym użyć konsoli do wypychania / ściągania repozytoriów, ale nie w przypadku zaćmienia. W moim przypadku zaćmienie nie może odczytać mojego klucza prywatnego SSH, mój klucz zaczął się od:

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

I zauważyłem, że klucz mojego kolegi zaczyna się od:

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

Myślę, że obecnie zaćmienie nie może przyjąć tego nowego rodzaju klucza (KLUCZ PRYWATNY OPENSSH).

Rozwiązałem to przez: Zregeneruj swój klucz ssh za pomocą polecenia:

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

Spowoduje to użycie starego sposobu wygenerowania klucza: rozpocznie się więc od nagłówków:

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

zobacz więcej informacji na:

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

Następnie możesz załadować klucz ponownie w eclilpse za pomocą Preferencji -> Połączenia sieciowe -> SSH2, kliknij "Dodaj klucz prywatny" (nadal wybierz swój klucz prywatny, nawet jeśli już widzisz nazwę na liście kluczy prywatnych, ponieważ eclipse musi przeładuj to)

Angia
źródło