Git pull / push - brak dostępu do HTTPS, wydaje się, że procedury SSL nie działają

105

Używam Git (i GitHub) na co dzień i wszystko działa dobrze i nagle nie mogę już komunikować się z moim zdalnym repozytorium GitHub za pomocą moich poleceń Git. Kiedy próbuję wykonać polecenie „Git pull”, pojawia się następujący błąd:

fatal: brak dostępu do „ https://github.com/snahrvar/eatibl.git/ ”: błąd: 1407742E: procedury SSL: SSL23_GET_SERVER_HELLO: wersja protokołu alertu tlsv1

Testowałem więc w wielu repozytoriach i otrzymuję te same błędy na moim komputerze. Miałem kogoś innego w interakcji z tymi samymi repozytoriami i dla nich to działa dobrze. Przed tym błędem wykonałem „npm install sharp” w projekcie i zakończyło się niepowodzeniem i podejrzewam, że mogło to zepsuć niektóre ustawienia SSL, ale to szalone przypuszczenie!

Wszelkie ogólne przemyślenia lub wskazówki byłyby bardzo mile widziane!

Jeśli w ogóle jest to pomocne, oto moje środowisko:

  • Wersja Gita: 1.9.4.msysgit.2
  • Wersja systemu Windows: Windows 8.1
Shayan Nahrvar
źródło
Ten sam problem tutaj ?
KŁAMSTWA - CHIOUKH
To samo dotyczy git 1.9.5.msysgit.1
Maxime Helen
Mam ten sam problem
ścigaj cabrera
11
Uważam, że ta zmiana spowodowała błąd: github.com/blog/2507-weak-cryptographic-standards-removed
Dan H
Miałem ten sam problem i zainstalowałem pulpit Github i wszystko działało dobrze!
Damian

Odpowiedzi:

69

Aktualizacja TortoiseGit i GCM nie pomogła mi, ale aktualizacja samego Gita tak, jak porada @ Frederic w komentarzach.

https://git-scm.com/download/win

Aby upewnić się, że nowa wersja Git instaluje się poprawnie i nie powoduje konfliktów z poprzednimi instalacjami (może, jeśli używałeś TortoiseGit, ponieważ używałby innych folderów i bałaganu ze zmienną PATH), usuń istniejącą instalację Git przed zainstalowaniem zaktualizowanego Gita . Może również wymagać instalacji z uprawnieniami administratora.

feos
źródło
Nie jestem pewien, co się stało z ostatnią wersją gita, aby zacząć rzucać te błędy dzisiaj, ale ta odpowiedź jest dla mnie. Wykonałem nową instalację (dwudniową kompilację) i utworzyłem kopię zapasową i nie uruchamiam żadnych błędów SSL. Porozmawiaj o igle w stogu siana.
JeffBaumgardt
3
Najciekawsze jest to, że sam github o tym nie wspomina, mimo że jest to prawdopodobnie związane z ich ostatnimi aktualizacjami. Szybkie wyszukiwanie w Google dotyczące podobnych problemów z innymi hostami kodu obwinia OpenSSL.
feos
Tak, wystarczy zaktualizować do najnowszej wersji! Dzięki: D
Shayan Nahrvar
1
@gath Prawdopodobnie masz 2 niekompatybilne instalacje gita, spróbuj całkowicie odinstalować istniejącą, a następnie zainstaluj ponownie git od podstaw. Ale twój błąd jest inny stackoverflow.com/questions/3778042/ ...
feos
5
Dla mnie „usuń istniejącą instalację Gita przed zainstalowaniem zaktualizowanego Gita” było kluczem do całej tej porażki.
Richard Ockerby,
20

Prawdopodobnie napotkasz niezgodność z wycofaniem przez GitHub słabych protokołów szyfrowania SSL:

Powiadomienie o usunięciu słabych standardów kryptograficznych

Rozwiązanie będzie się różnić, ale w przypadku systemu Windows prawdopodobnie musisz zaktualizować menedżera poświadczeń Git do wersji 1.14.0

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

Anthony L.
źródło
1
Czy nadal będą obsługiwać wbudowanego menedżera poświadczeń Git dla systemu Windows: wincred. Otrzymuję ten sam błąd z tym narzędziem
Max Hartshorn,
Ta odpowiedź pomogła podać kontekst zmiany, ale rozwiązanie z @feos jest tym, które zadziałało dla mnie (Windows 10, TortoiseGit)
Eric Farraro
14

Jeśli używasz Android Studio lub IntelliJ IDEA, aktualizacja Gita do najnowszej wersji i zmiana ścieżki tak, aby wskazywała na nową wersję, rozwiązuje problem za mnie.

Tutaj wprowadź opis obrazu

humazed
źródło
1
U mnie to też zadziałało: zainstaluj najnowszą wersję Gita i wskaż na nią IntelliJ IDEA.
user1825866
8

Używając TortoiseGit, zrobiłem wszystkie inne poprawki / aktualizacje podane w tym celu i nadal bez sukcesu. Znalazłem to: nie mogę nagle wykonać polecenia push / pull / download

Moje ustawienia TortoiseGit dla Git dla Windows Ścieżka Git.exe wskazywała C:\Program Files (x86)\Git\bin. Zmieniłem to na C:\Program Files\Git\bini teraz znowu działa.

MJWitte
źródło
3
Sprawdziłem to za pomocą Check nowprzycisku w Generaloknie ustawień, ze x86ścieżką, którą otrzymałem git version 1.9.5.msysgit.1, po zmianie na C:\Program Files\Git\binmam get git version 2.16.2.windows.1iz tą ścieżką wszystko działa dobrze.
apdevelop
8

To właśnie zadziałało dla mnie.

  1. Zainstaluj najnowszą wersję Git stąd: https://git-scm.com/download/win
  2. W TortoiseGit przejdź do menu UstawieniaOgólneŚcieżka Git.exe - zmień ścieżkę z 32-bitowej na 64-bitową: C: \ Program Files (x86) \ Git \ bin → C: \ Program Files \ Git \ bin
dgundersen
źródło
Słuszna uwaga. Jeśli ktoś (taki jak ja) korzystał ze starej 32-bitowej wersji systemu Windows, pamiętaj, aby zastąpić ją w PATH.
AG
To zaoszczędziło mi czasu @dgundersen
Tejas Mehta
8

Aktualizacja Gita nie wystarczyła w mojej sytuacji. Po kilku godzinach debugowania to była moja poprawka:

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.0

C:\wamp64\www\maandlastenmanager> git config http.sslVersion tlsv1.2

C:\wamp64\www\maandlastenmanager> git config http.sslVersion
tslv1.2
Raymond van Rijs
źródło
To rozwiązało problem dla mnie i na zupełnie innej konfiguracji (Mac OS X). curlnadal przekazuje mi ten komunikat, co sprawia, że ​​zastanawiam się, czy istnieje takie ustawienie, które dotyczy wszystkich aplikacji ssl, a nie tylko git...
chesterbr
Która z tych linii?
Dmitri Zaitsev
2

Miałem ten sam problem podczas ściągania kodu z GitHub na moim terminalu Visual Studio Code . Rady zawarte w poprzednich odpowiedziach okazały się przydatne i zhakowałem rozwiązanie, wykonując poniższe czynności:

To repozytorium było całkiem przydatne.

Mam nadzieję, że to komuś pomoże.

Bolu Ajibawo
źródło
2

TL; DR: git config --system http.sslbackend schanneli wyłącz kontrole HTTPS github.comw oprogramowaniu antywirusowym


Używam wiersza poleceń Git w systemie Windows 8 x64. Ponadto moje oprogramowanie antywirusowe domyślnie sprawdza ruch HTTPS . Podobnie jak inne osoby, odpowiadając na to pytanie, korzystam z GitHub prawie codziennie.

  • Aktualizacja Gita - nie pomogła - ponieważ używałem OpenSSL (patrz poniżej)
  • Aktualizowanie menedżera poświadczeń - nie pomogło

Potem zacząłem bawić się przełączaniem backendu SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel a oprogramowanie antywirusowe sprawdza ruch SSL:

  1. OpenSSL, HTTPS sprawdza ON: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, HTTPS wyłącza: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, HTTPS sprawdza WŁĄCZONE: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, HTTPS wyłącza kontrolę: działa dobrze

PS: Zamiast wiersza poleceń możesz po prostu ponownie zainstalować najnowszą wersję Gita, wybierając opcję „Użyj natywnej biblioteki weryfikacji SSL systemu Windows”.

PPS: Przypadek (3) wydaje się być błędem w bibliotece Schannel, ponieważ certyfikat MITM, którego używa moje oprogramowanie antywirusowe, znajduje się na białej liście na moim komputerze.

Mike Makarov
źródło
Podczas ponownej instalacji gita całkowicie usunąłem jego starą instalację, a do nowej instalacji wybrałem OpenSSL, więc myślę, że ponownie zainstalowałem go od zera. Ale nie mam programu antywirusowego. Czy ponowna instalacja zaplecza SSL coś dla Ciebie zmieniła, czy tego nie zrobiłeś?
feos
@feos Tak, działa tylko dla mnie w trybie innym niż OpenSSL. Dodatkowo musiałem wyłączyć sprawdzanie https w AV.
Mike Makarov
Nadal nie jest dla mnie jasne, czy przeinstalowałeś SSL, czy nie?
feos
@feos Nie, nie. Nie sądzę, aby można było „ponownie zainstalować SSL” w systemie Windows. Więc nie jestem pewien, co przez to rozumiesz. Podczas instalowania najnowszego klienta git masz możliwość wyboru - zaplecze OpenSSL lub zintegrowane z systemem Windows. Wybrałem OpenSSL. To nie zadziałało i zmieniłem backend poprzez konfigurację. Mam nadzieję, że to wyjaśnia.
Mike Makarov
Tak, dzięki. Myślę, że miałeś zupełnie inny problem niż OP.
feos
1

W systemie macOS możesz zainstalować najnowszą wersję gitza pośrednictwem Homebrew.

TAK JAK
źródło
Niestety nie działało to dla mnie na Mac OS X 10.7.5 (Lion) - pojawił się ten sam błąd. Potem próbowałem zainstalować Homebrewod zera - wydaje się, że to haczyk22. error: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version while accessing https://github.com/Homebrew/brew/info/refs?service=git-upload-pack fatal: HTTP request failed
Setaa
@Setaa, więc możesz spróbować zainstalować go ręcznie ze strony Wydań? Wydaje się, że zajęli się tym chwytem22 w 1.5.5
AS
1

To samo dotyczy Gita 1.9.5.msysgit.1. Próbowałem zainstalować https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 , ale bez zmian.

Właściwie nic się nie dzieje po instalacji; może robię coś złego? (To może nie pomóc w przypadku pierwszego pytania, ale dla innych ludzi, tak!)

Frederic
źródło
6
Aby pomóc społeczności, właśnie zaktualizowałem git (dla Windows) (za pomocą git-scm.com/download/win ) i rozwiązałem problem!
Frederic
2
W systemie Windows 7 Pro / 64 zaktualizowałem git za pomocą łącza git-scm.com/download/win. Ten zainstalował git do c: \ program files \ git zamiast c: \ program files (x86) \ git. Moja wersja zmieniła się z 1.9.5.msysgit.1 na 2.16.2.windows.1, a kiedy skonfigurowałem WebStorm, aby wskazywał na nowszą wersję, tajemniczy błąd 1407742E: SSL: SSL23_GET_SERVER_HELLO: tlsv1 protokołu alertów ustał.
CODE-REaD
Do Twojej wiadomości, moja konfiguracja to:C:\Program Files\Git\etc> cat install-options.txt Editor Option: Notepad++ Path Option: Cmd Plink Path: C:\Program Files (x86)\PuTTY\plink.exe SSH Option: Plink CURL Option: OpenSSL CRLF Option: CRLFAlways Bash Terminal Option: MinTTY Performance Tweaks FSCache: Enabled Use Credential Manager: Enabled Enable Symlinks: Disabled
CODE-REaD
Powinieneś zachęcić do ulepszenia odpowiedzi.
Edward Thomson,
1

Tak, napotkałem dziś ten sam problem przy żądaniu ściągnięcia i rozwiązaniem było po prostu zaktualizowanie Gita poprzez pobranie najnowszej (2.16.2) 64-bitowej wersji Git dla Windows. Został wydany 5 dni temu, 20.02.2018.

Thomas M.
źródło
1

Komentarz @andw zadziałał dla mnie:

Zaktualizuj Git w wersji 1.9.5 do 2.15.1, wykonując następujące czynności:

W sourceTree przejdź do menu NarzędziaOpcjeGitUżyj wbudowanego Gita .

Ślepy zaułek
źródło
1

Szybkim rozwiązaniem byłoby git config --global http.sslVerify true , ale nie jest to zalecane, ponieważ uniemożliwia to użycie SSL.

Drugim i lepszym sposobem jest użycie kluczy ssh zamiast adresu URL SSL.

Kroki do generowania kluczy SSH

o Uruchom następującą komendę w terminalu Git (Git Bash): ssh-keygen

Po uruchomieniu polecenia pojawi się następujący komunikat:

Generowanie pary kluczy publiczny / prywatny RSA.

Wpisz plik, w którym chcesz zapisać klucz (/h//.ssh/id_rsa):

Podaj ścieżkę do klucza, w którym ma być przechowywany, na przykład podaj plik, w którym ma zostać zapisany klucz (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

Następnie podaj hasło dla tego klucza (dowolne hasło składające się z minimum 8 znaków)

• Następnie uruchom następującą komendę: eval „$ (ssh-agent –s)”

• Uruchom następujące polecenie: ssh-add C:/Users/Public/my-new-ssh-keyUwaga: użyj ukośnika w ścieżce do nowo utworzonego klucza SSH.

Następnie dodaj zawartość pliku my-new-ssh-key.pub i dodaj ją w polu tekstowym Dodaj klucz publiczny (Bitbucket, GitHub itp.)

ankit bhardwaj
źródło
0

Podczas łączenia się ze zdalnym repozytorium w celu pobrania, ściągnięcia, wypchnięcia itp. Miałem ten sam błąd:

fatal: unable to access 'https://github.com/repository.git/': error:1
407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

Właśnie ponownie zainstalowałem 64-bitowy Git zamiast 32-bitowego i to rozwiązało problem.

Po instalacji sprawdź ścieżkę Git w zmiennych środowiskowych. Powinno być:

C:\Program Files\Git\bin\git.exe
Pratap Singh
źródło
0

Jest to problem z IntelliJ i RubyMine. GitHub musi mieć wyłączony SSL (może zgodność z PCI?) Na korzyść TLS. Jeśli otworzysz Ustawienia w IntelliJ lub RubyMine i przejdziesz do Kontrola wersji> Git, zobaczysz, że używa git.exe zainstalowanego w ścieżce aplikacji. Powinieneś pobrać najnowszą wersję Gita i zmienić ścieżkę w ustawieniach VCS, aby wskazywała na to, np. C: \ Program Files \ Git \ bin \ git.exe, jeśli instalujesz ją w systemie Windows. Po tym działa jak urok.

Dave Medlock
źródło
0

Czasami jest to spowodowane przestarzałym msysgit, który używa starego ssl i nie jest już obsługiwany, możesz zainstalować najnowszy git dla Windows i wskazać ścieżkę git.exe w ustawieniach żółwia, a następnie ten problem zniknął.

Benny
źródło
0

Napotkano podobny błąd. W systemie Windows zaktualizowano git w systemie Windows do najnowszej wersji. To rozwiązało problem.

Olusola Omosola
źródło
W jaki sposób to dodaje cokolwiek do zaakceptowanej odpowiedzi, która sugeruje aktualizację gita w celu rozwiązania problemu?
David,
Wyjaśniłem, co mi pomogło. Być może podobnie jak niektórzy inni.
Olusola Omosola
0

Aktualizacja wersji Gita załatwiła mi sprawę. Miałem wersję 1.9.5 i tak i zaktualizowałem do 2.21.0 w systemie Windows. Aktualizacja jest również bardzo łatwa. Nie musimy odinstalowywać starszej wersji. Pobierz najnowszy instalator Git i po prostu naciskaj dalej, używając domyślnych opcji, a wersja zostanie zmieniona na nową, a wszystkie stare ustawienia będą nadal działać jak klucze ssh itp. Nie musimy ponownie generować kluczy i włączać github lub inne repozytorium.

Wcześniej klonowanie protokołu https nie działało i powodowało błąd

krytyczny: brak dostępu do „ https://github.com/tensorflow/models/ ”: błąd: 1407742E: procedury SSL: SSL23_GET_SERVER_HELLO: wersja protokołu alertu tlsv1

Po pobraniu nowej wersji i uruchomieniu tego samego polecenia klonowania działało bez żadnych problemów.

AKumar
źródło