Git pull / push - невозможно получить доступ к HTTPS, похоже, что подпрограммы SSL не работают

105

Я использую Git (и GitHub) каждый день, все работает нормально, и внезапно я больше не могу общаться с моим удаленным репозиторием GitHub с помощью команд Git. Когда я пытаюсь выполнить команду «Git pull», появляется следующая ошибка:

фатальный: невозможно получить доступ к https://github.com/snahrvar/eatibl.git/ : ошибка: 1407742E: подпрограммы SSL: SSL23_GET_SERVER_HELLO: версия протокола предупреждений tlsv1

Итак, я протестировал несколько репозиториев и получил те же ошибки на своем компьютере. У меня был кто-то другой, взаимодействующий с теми же репозиториями, и для них это отлично работает. До этой ошибки я выполнял "npm install sharp" для проекта, и это закончилось неудачей, и я подозреваю, что это могло испортить некоторые настройки SSL, но это дикая догадка!

Будем очень признательны за любые общие мысли или рекомендации!

Если это вообще полезно, вот моя среда:

  • Версия Git: 1.9.4.msysgit.2
  • Версия Windows: Windows 8.1
Шаян Нахрвар
источник
Такая же проблема здесь ?
LYES - CHIOUKH
То же самое здесь с git 1.9.5.msysgit.1
Максим Хелен
У меня та же проблема
чейз кабрера
11
Я считаю, что именно это изменение вызвало ошибку: github.com/blog/2507-weak-cryptographic-standards-removed
Dan H
У меня была такая же проблема, и я установил рабочий стол Github, и все работало нормально!
Дамиан

Ответы:

69

Обновление TortoiseGit и GCM мне не помогло, но обновление самого Git помогло, согласно совету @ Frederic в комментариях.

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

Чтобы убедиться, что новая версия Git устанавливается правильно и не конфликтует с предыдущими установками (это может быть, если вы использовали TortoiseGit, потому что он будет использовать разные папки и путаться с переменной PATH), удалите существующую установку Git перед установкой обновленного Git. . Также может потребоваться установка с правами администратора.

feos
источник
Я не уверен, что случилось с последней версией git, чтобы начать выдавать эти ошибки сегодня, но этот ответ для меня. Я выполнил новую установку (сборка двухдневной давности), и у меня нет ошибок ssl. Поговорим об иголке в стоге сена.
JeffBaumgardt
3
Самая интересная часть заключается в том, что сами github не упоминают об этом, хотя, вероятно, это связано с их недавними обновлениями. Быстрый поиск в Google относительно аналогичных проблем с другими хостингами кода обвиняет OpenSSL.
feos
Ага, просто нужно обновить до последней версии! Спасибо: D
Шаян Нахрвар
1
@gath У вас, вероятно, две несовместимые установки git, попробуйте полностью удалить существующую, а затем переустановить git с нуля. Но ваша ошибка - другая stackoverflow.com/questions/3778042/…
feos
5
Для меня «удалить существующую установку Git перед установкой обновленного Git» было ключом ко всему этому фиаско.
Ричард Окерби
20

Вероятно, вы столкнулись с несовместимостью с отказом GitHub от слабых протоколов шифрования SSL:

Уведомление об удалении слабых криптографических стандартов

Решение будет другим, но для Windows вам, вероятно, потребуется обновить диспетчер учетных данных Git до версии 1.14.0.

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

Энтони Л
источник
1
Будут ли они продолжать поддерживать встроенный менеджер учетных данных Git для windows: wincred. Я получаю ту же ошибку с этим инструментом
Макс Хартсхорн
Этот ответ помог предоставить контекст об изменении, но решение от @feos - это то, что сработало для меня (Windows 10, TortoiseGit),
Эрик Фарраро
14

Если вы используете Android Studio или IntelliJ IDEA, обновление Git до последней версии и изменение пути, указывающего на новую версию, решают проблему для меня.

Введите описание изображения здесь

измученный
источник
1
Это также сработало для меня: установите последнюю версию Git и укажите на нее IntelliJ IDEA.
user1825866
8

Используя TortoiseGit, я сделал все остальные исправления / обновления, данные для этого, и все равно безуспешно. Я обнаружил это: внезапно невозможно git push / pull / fetch

Мои настройки TortoiseGit для Git для Windows указывал путь Git.exe C:\Program Files (x86)\Git\bin. Я изменил его на, C:\Program Files\Git\binи теперь он снова работает.

MJWitte
источник
3
Я проверил его с помощью Check nowкнопки в Generalдиалоговом окне настроек, с полученным x86путем git version 1.9.5.msysgit.1, после перехода на « C:\Program Files\Git\binЯ получил», git version 2.16.2.windows.1и с этим путем все работает нормально.
apdevelop
8

Это то, что у меня сработало.

  1. Установите последнюю версию Git отсюда: https://git-scm.com/download/win
  2. В TortoiseGit перейдите в меню НастройкиОбщиеПуть к Git.exe - измените его с 32-битного на 64-битный путь: C: \ Program Files (x86) \ Git \ bin → C: \ Program Files \ Git \ bin
Dgundersen
источник
Хорошая точка зрения. Если кто-то (например, я) использовал старую 32-разрядную версию Windows, обязательно замените ее в PATH.
AG
Это сэкономило мне время @dgundersen
Tejas Mehta
8

В моей ситуации обновления Git было недостаточно. После нескольких часов отладки это было моим исправлением:

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
Раймонд ван Рейс
источник
Это решило проблему для меня, причем при совершенно другой настройке (Mac OS X). curlвсе еще дает мне сообщение, которое заставляет меня задаться вопросом, есть ли такая настройка, которая подходит для всех ssl-приложений, а не только git...
chesterbr
Какая из этих строк?
Дмитрий Зайцев
2

У меня была такая же проблема при извлечении кода из GitHub на моем терминале Visual Studio Code . Я нашел совет в предыдущих ответах полезным и вместе взломал решение, выполнив следующие шаги:

Этот репозиторий оказался весьма полезным.

Я надеюсь, что это поможет кому-то.

Болу Аджибаво
источник
2

TL; DR: git config --system http.sslbackend schannelи отключите проверку HTTPS github.comв вашем антивирусном ПО


Я использую командную строку Git в Windows 8 x64. Кроме того, моя антивирусная программа по умолчанию проверяет трафик HTTPS . Как и другие люди, отвечая на этот вопрос, я использую GitHub почти ежедневно.

  • Обновление Git - не помогло - потому что я использовал OpenSSL (см. Ниже)
  • Обновление диспетчера учетных данных - не помогло

Затем я начал играть с переключением бэкэнда SSL:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel а антивирусное ПО проверяет SSL-трафик:

  1. OpenSSL, HTTPS проверяет ВКЛ: error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL, HTTPS не проверяют: SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel, проверка HTTPS включена: schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel, проверка HTTPS выключена: работает нормально

PS: Вместо командной строки вы можете просто переустановить последнюю версию Git, выбрав «Использовать собственную библиотеку проверки SSL Windows».

PPS: Случай (3) кажется ошибкой в ​​библиотеке schannel, потому что сертификат MITM, который использует мое антивирусное программное обеспечение, внесен в белый список на моем компьютере.

Майк Макаров
источник
При переустановке git я полностью удалил его старую установку, а для новой установки выбрал OpenSSL, так что, думаю, он переустановил его с нуля. Но у меня нет антивируса. Переустановка бэкенда SSL что-то изменила для вас или вы этого не делали?
feos
@feos Да, у меня это работает только в режиме без OpenSSL. Плюс мне пришлось отключить проверку https в AV.
Майк Макаров
Мне до сих пор непонятно, SSL переустанавливал или нет?
feos
@feos Нет, не делал. Я не думаю, что в Windows можно "переустановить SSL". Так что не понимаю, что вы имеете в виду. Когда вы устанавливаете последний клиент git, у вас есть возможность выбрать - бэкэнд OpenSSL или интегрированный в Windows. Я выбрал OpenSSL. Это не сработало, и я изменил серверную часть через конфигурацию. Надеюсь, это проясняет.
Майк Макаров
Да, спасибо. Я думаю, у вас была совсем другая проблема, чем у OP.
feos
1

В macOS вы можете установить последнюю версию gitчерез Homebrew.

ТАК КАК
источник
К сожалению, у меня это не сработало на Mac OS X 10.7.5 (Lion) - та же ошибка. Затем я попытался установить Homebrewс нуля - похоже, это проблема22. 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, ну может тогда попробовать установить вручную со страницы Releases? Кажется, они обратились к этой уловке22 в 1.5.5
AS
1

То же самое и с Git 1.9.5.msysgit.1. Я попытался установить https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0 , но без изменений.

Собственно после установки ничего не происходит; может я что то не так делаю? (Это может не помочь в ответ на первый вопрос, но для других - да!)

Фредерик
источник
6
Чтобы помочь сообществу, я только что обновил git (для Windows) (с помощью git-scm.com/download/win ), и проблема была решена!
Frederic
2
Под Windows 7 Pro / 64 я обновил git по ссылке git-scm.com/download/win. Это установило git в c: \ program files \ git, а не в c: \ program files (x86) \ git. Моя версия изменилась с 1.9.5.msysgit.1 на 2.16.2.windows.1, и когда я настроил WebStorm для указания на более новую версию, загадочные процедуры 1407742E: SSL: SSL23_GET_SERVER_HELLO: ошибка версии протокола предупреждений tlsv1 прекратились.
CODE-REaD
К вашему сведению, мои настройки: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
Вы должны поощрять обновление ответа.
Эдвард Томсон
1

Да, сегодня я столкнулся с той же проблемой при запросе на перенос, и решением было просто обновить Git, загрузив последнюю (2.16.2) 64-разрядную версию Git для Windows. Выпущено 5 дней назад, 20.02.2018.

Томас М
источник
1

Комментарий @andw сработал для меня:

Обновите Git версии 1.9.5 до 2.15.1, выполнив следующие действия:

В sourceTree перейдите в меню ИнструментыПараметрыGitИспользовать встроенный Git .

Тупик
источник
1

Быстрое решение - git config --global http.sslVerify true , но это не рекомендуется, так как это противоречит цели с использованием SSL.

Второй и лучший способ - использовать ключи ssh, а не URL-адрес SSL.

Шаги по созданию ключей SSH

o Выполните следующую команду в терминале Git (Git Bash): ssh-keygen

После выполнения команды появится следующее сообщение:

Создание пары ключей RSA Public / Private.

Введите файл, в котором нужно сохранить ключ (/h//.ssh/id_rsa):

Укажите путь для сохранения ключа, например, введите файл, в котором необходимо сохранить ключ (/h//.ssh/id_rsa): C:\Users\Public\my-new-ssh-key

Затем укажите кодовую фразу для этого ключа (любой пароль не менее 8 символов)

• Затем выполните следующую команду: eval «$ (ssh-agent –s)»

• Выполните следующую команду: ssh-add C:/Users/Public/my-new-ssh-keyПримечание: используйте косую черту в пути к вновь созданному ключу SSH.

После этого добавьте содержимое файла my-new-ssh-key.pub и добавьте его в текстовую область для добавления открытого ключа (Bitbucket, GitHub и т. Д.)

Анкит Бхардвадж
источник
0

При подключении к удаленному репозиторию для извлечения, извлечения, нажатия и т. Д. У меня была такая же ошибка:

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

Я просто переустановил 64-разрядную версию Git вместо 32-разрядной, и это устранило проблему.

После установки проверьте путь Git в переменных среды. Так должно быть:

C:\Program Files\Git\bin\git.exe
Пратап Сингх
источник
0

Это проблема с IntelliJ и RubyMine. GitHub должен был отключить SSL (возможно, соответствие PCI?) В пользу TLS. Если вы откроете «Настройки» в IntelliJ или RubyMine и перейдете в «Управление версиями»> «Git», вы увидите, что он использует git.exe, установленный по пути к приложению. Вам следует загрузить самую последнюю версию Git и изменить путь в настройках VCS, чтобы он указывал на нее, например C: \ Program Files \ Git \ bin \ git.exe, если вы устанавливаете его в Windows. После этого работает как шарм.

Дэйв Медлок
источник
0

Иногда это вызвано устаревшим msysgit, который использует старый ssl и больше не поддерживается, вы можете установить последний git для Windows и указать путь git.exe в настройке черепахи, тогда эта проблема исчезнет.

Бенни
источник
0

Обнаружил аналогичную ошибку. В Windows обновлен git в Windows до последней версии. Это устранило проблему.

Олусола Омосола
источник
Как это добавляет что-нибудь к принятому ответу, который предлагает обновить git, чтобы решить проблему?
Дэвид
Я объяснил, что у меня сработало. Возможно, похоже на то, что сделали некоторые другие.
Olusola Omosola
0

Обновление версии Git помогло мне. У меня была версия 1.9.5 и я обновился до 2.21.0 в Windows. Также обновление очень просто. Нам не нужно удалять старую версию. Загрузите последнюю версию установщика Git и просто продолжайте нажимать далее, используя параметры по умолчанию, и версия будет изменена на новую версию, а все старые настройки будут по-прежнему работать как ключи ssh и т. Д. Нам не нужно снова генерировать ключи и надевать github или любой другой репозиторий.

Раньше мое клонирование протокола https не работало и выдавало ошибку

фатальный: невозможно получить доступ к https://github.com/tensorflow/models/ ': ошибка: 1407742E: подпрограммы SSL: SSL23_GET_SERVER_HELLO: версия протокола предупреждений tlsv1

Как только я загрузил новую версию и запустил ту же команду клонирования, все заработало без проблем.

AKumar
источник