używam github i w przeszłości pomyślnie dodawałem i synchronizowałem pliki na moim laptopie.
ostatnio zacząłem otrzymywać komunikat „ Błąd krytyczny PuTTY: Rozłączono: Brak dostępnych obsługiwanych metod uwierzytelniania ” po uruchomieniu:
git pull origin master (lub push)
jednak
ssh [email protected] zwraca poprawną odpowiedź: BŁĄD: Cześć, nazwa użytkownika! Udało Ci się uwierzytelnić, ale GitHub nie zapewnia dostępu do powłoki Połączenie z github.com zostało zamknięte.
po przekopaniu się na githubie znalazłem tego morcela:
Brak dostępnych obsługiwanych metod uwierzytelniania. Powinieneś być świadomy zmiennej środowiskowej GIT_SSH, która jest używana przez git do znalezienia twojego klienta mówiącego ssh, jeśli ssh nie działa dla ciebie. Instalacja git może wykorzystywać plik plink.exe (przez GIT_SSH) do przeprowadzenia uwierzytelnienia. Jeśli tak, upewnij się, że masz uruchomiony program Pageant.exe i załadowany do niego klucz utworzony dla github. Zapewnia to klucz do plink.exe; bez tego wystąpi powyższy błąd.
nie jestem pewien, co to jest plink.exe lub peagant.exe .. a fakt, że ssh [email protected] wydaje się poprawnie uwierzytelniać, sprawia, że zastanawiam się, jakie jest tutaj najlepsze rozwiązanie .. z pewnością nie chcę nadmiernie komplikować mojej konfiguracji, jeśli nie niezbędny.
GIT_SSH
do.bash_profile
i nie.profile
GIT_SSH="D:\Program Files\Git\usr\bin\ssh.exe"
Korzystanie z TortoiseGit
TortoiseGit> Ustawienia ... Sieć ... Klient SSH:
C:\Program Files\Git\usr\bin\ssh.exe
Lokalizacja moja zróżnicowana. Na jednym komputerze to było
C:\Program Files (x86)\Git\bin\ssh.exe
źródło
Ponieważ pytasz: plink i korowód są częścią pakietu PuTTY, który jest implementacją SSH, która obsługuje systemy Linux i Windows i jest całkowicie dominująca w systemie Windows.
SSH
jeśli kiedykolwiek korzystałeś z Telnetu, jest tak (ale bezpieczniej): pozwala zdalnie uzyskać dostęp do powłoki bash (wiersza poleceń) hosta Linux.
Kit
W systemie Windows jest to dominujące oprogramowanie do zdalnego dostępu do wiersza poleceń hosta Linuksa w protokole SSH (powyżej). W systemie Windows rozszerzenia .exe dotyczą plików wykonywalnych. Więc te uwagi o plink.exe i pageant.exe prawdopodobnie nie mają zastosowania, jeśli jesteś w systemie Linux . PuTTY zawiera
Od ( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )
Tak więc github jest hostowany na maszynie z Linuksem i używa SSH do zabezpieczenia połączenia. SSH uwierzytelnia się za pomocą haseł lub kluczy, wiele hostów (github?) Uwierzytelnia się tylko za pomocą kluczy. Konfiguracja najwyraźniej próbuje uwierzytelnić się za pomocą klucza. Klucze i hosty nie są jeden do jednego: możesz mieć dwa klucze dla tego samego hosta i / lub dwa hosty dla tego samego klucza, więc należy nimi zarządzać. Jeśli pracujesz w systemie Windows, dostęp do sesji SSH prawdopodobnie uzyskuje się za pośrednictwem plink, a Twoje klucze są prawdopodobnie zarządzane przez Pageant.
Importuj klucz, którego potrzebujesz za każdym razem, gdy ładujesz Pageant. Jeśli postępowałeś zgodnie z instrukcjami, które mówiły „zaimportuj swój klucz” i zobaczyłeś, że zadziałał, ale teraz nie działa, zobacz Rozdział 9: Używanie Pageant do uwierzytelniania .
Ostatnia wskazówka, jeśli korzystasz z systemu Windows: możesz mieć wiele wystąpień pakietu PuTTY zainstalowanych przez różne narzędzia. Na przykład TortoiseGit instaluje własne.
źródło
Doświadczyłem tego problemu, ponieważ
GIT_SSH
wskazywałem na wersję TortoiseSVNPlink.exe
. Zmieniłem to, aby wskazywało na wersję TortoiseGit, ponownie uruchomiłem cmd i zadziałało.Nie pamiętam dokładnie, ale wersja TortoiseSVN mogła być wersją 32-bitową, a wersja TortoiseGit była 64-bitowa (zlokalizowana w
Program Files
, nieProgram Files (x86)
).Sprawdź
GIT_SSH
dokładnie swój plik env var.Wolę używać gita z normalnymi
cmd.exe
(oczywiście w Console2)źródło
Dla użytkowników TortoiseGit w systemie Windows
Początkowo konfigurowałem większość moich repozytoriów Github / Bitbucket przy użyciu adresów URL repozytoriów SSH, ponieważ (pierwotnie) był to jedyny wygodny sposób, aby uniemożliwić TortoiseGit monitowanie o hasło przy każdej pojedynczej akcji.
Ale ustawienie TortoiseGit w ten sposób zawsze było strasznie bolesne. Za każdym razem poprawne skonfigurowanie zajmowało mi godziny , ponieważ domyślne opcje instalacji nigdy nie działały (nawet od 2016 r.).
Ale TortoiseGit ma teraz lepsze zarządzanie hasłami dla HTTPS, a Github faktycznie zaleca używanie adresów URL HTTPS, gdy tylko jest to możliwe.
Zalety protokołu HTTPS to:
pageant.exe
ciągłego działania (co wymaga podania hasła przy każdym uruchomieniu)źródło
Jeśli używasz Pageant i po ponownym uruchomieniu komputera (lub zamknięciu i ponownym otwarciu programu Pageant) pojawia się błąd opisany w pytaniu:
Błąd może być spowodowany tym, że Pageant nie ma aktywnie załadowanego klucza SSH GitHub. Domyślnie program Pageant NIE ładuje automatycznie kluczy z poprzedniej sesji podczas uruchamiania.
Aby załadować klucz:
Aby uniknąć tego problemu w przyszłości, możesz skonfigurować program Pageant tak, aby automatycznie ładował klucz podczas uruchamiania. (Pageant automatycznie poprosi o podanie hasła, jeśli klucz jest chroniony hasłem).
Kroki, aby to zrobić (zakładając, że masz już program Pageant skonfigurowany do uruchamiania podczas uruchamiania systemu Windows):
shell:startup
)Odniesienie i pełne szczegóły: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
źródło
Mój problem polegał na tym, że próbowałem użyć mojej nazwy użytkownika github. Najwyraźniej podczas korzystania z Github (czy jest to rzecz Git?) , Jeśli używasz uwierzytelniania opartego na kluczach, musisz ustawić swoją nazwę użytkownika na
git
.Nie jestem pewien, dlaczego w ogóle potrzebujesz nazwy użytkownika - może ktoś bardziej kompetentny może to wyjaśnić?
źródło
ssh://[email protected]/myname/repo.git
będzie działać świetnie. Dobra robota. Jeśli chodzi o powód, zakładam, że ma to na celu zablokowanie ochrony. Użytkownik „git” ma wyłączony login, więc nikt nie może włamać się w ten sposób do systemu. Muszą mieć ważny klucz, aby nawet rozmawiać z Githubem, a kiedy już mają ważny klucz, mogą dopasować go do użytkownika, aby się zalogować.Na moim komputerze z systemem Windows 7 i Github dla Windows używającym git w wersji 1.8.3.msysgit.0. Zauważyłem, że aktualizacja zmiennej systemowej GIT_SSH do C: \ Program Files (x86) \ Git \ bin \ ssh.exe wydaje się załatwić sprawę. To również rozwiązało mój problem z kontaktowaniem się z repozytorium git OpenShift.
źródło
Pracowałem dla mnie w systemie Windows 8: zmienna GIT_SSH wskazywała na plik plink.exe, zmieniono ją w ustawieniach systemu, aby wskazywała na plik binarny ssh, i to rozwiązało problem. Aby znaleźć pełną ścieżkę do ssh, uruchom:
źródło
To właśnie zrobiłem, aby rozwiązać ten problem.
Używałem Git Bash w systemie Windows 10
Zacząłem Pageant, nacisnąłem klawisz Add,
przeszedł do folderu C: \ Users \ nazwa_użytkownika \ .ssh i wybrał mój klucz
Następnie próbuję wykonać git push i tym razem zadziałało.
źródło
Ten sam błąd, inne rozwiązanie odnotowane tutaj - Problem z połączeniem z GitHub w systemie Windows, nawet przez PuTTY
źródło
Napotkałem ten sam problem, jednak rozwiązanie GIT_SSH wydawało mi się działać raz. Po ponownym uruchomieniu komputera zdałem sobie sprawę, że to coś innego, ponieważ mogłem sklonować moje prywatne repozytoria bez problemu za pomocą Git Bash lub Command Prompt, ale nie w Sublime Text 3 z wtyczką SublimeGit. Moje rozwiązanie było proste i właściwie to @BlueRaja - wspomniał Danny Pflughoeft, ale pomyślałem, że przydałoby się jakiś kierunek;)
Zasadniczo wystarczy edytować
~/.ssh/config
i upewnić się, że nazwa użytkownika togit
. Możesz również powiedzieć mu, aby używał określonego klucza SSH dla Github - mój~/.ssh/config
plik wygląda następująco:Mam konkretny klucz do Github ze względu na wiele innych rzeczy, które robię w ciągu dnia, ale jeśli masz tylko jeden, zwykle będzie to
~/.ssh/id_rsa.pub
tak, jak wyjaśnia Github tutaj .Wiem, że każdy ma inne rozwiązanie, ale zostawię to tutaj dla każdego, kto może napotkać ten artykuł bez poprawki. Powodzenia!
źródło
Otrzymałem ten błąd podczas używania TortoiseGit do klonowania repozytorium z GitHub. Naprawiono przez kliknięcie „Załaduj klucz Putty” i wybranie pliku klucza (* .pkk) w oknie dialogowym klonowania Git.
źródło
Możesz pobrać plink i korowód tutaj: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
To narzędzia PuTTY.
źródło
Mam ten problem (bezpośrednie ssh działało, ale git pull nie powiodło się), ponieważ mój pilot Git nie był tym, czym myślałem, że jest.
Tak, tak, wiem, że to głupi błąd, ale zdarza się i warto to sprawdzić.
Posługiwać się
git remote -v
źródło
Miałem podobny problem po aktualizacji GitExtensions do wersji 3.3.0.7719
W jakiś sposób przywrócił moje ustawienia uwierzytelniania, aby używać PuTTY zamiast OpenSSH.
W tej wersji tutaj jest menu, którego użyłem do ponownego włączenia OpenSSH:
źródło