Git pull / push - 无法访问HTTPS,SSL例程似乎已关闭

时间:2018-02-22 22:05:52

标签: git github

我每天都在使用Git(和GitHub),一切都运行正常,突然间,我无法通过我的Git命令与远程GitHub存储库进行通信。当我尝试“Git pull”时,它会出现以下错误:

  

致命:无法访问“https://github.com/snahrvar/eatibl.git/”:   错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1 alert   协议版本

因此,我在多个存储库中进行了测试,并且在计算机上出现了相同的错误。我让其他人与那些相同的存储库进行交互,它对他们来说很好。在此错误之前,我在项目上执行了“npm install sharp”并且最终失败了,我怀疑这可能与某些SSL设置混乱,但这是一个疯狂的猜测!

非常感谢任何一般性的想法或指导!

如果它有用,那么这就是我的环境:

  • Git版本:1.9.4.msysgit.2
  • Windows版本:Windows 8.1

17 个答案:

答案 0 :(得分:64)

更新TortoiseGit和GCM对我没有帮助,但根据@ Frederic的评论建议更新Git本身。

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

要确保新版本的Git正确安装并且不会与之前的安装发生冲突(如果您使用TortoiseGit,可能会使用不同的文件夹并使用PATH变量),请删除安装更新的Git之前的现有Git安装。可能还需要使用管理员权限进行安装。

答案 1 :(得分:18)

您可能会遇到与GitHub弃用弱SSL加密协议不兼容的问题:

Weak cryptographic standards removal notice

解决方案会有所不同,但对于Windows,您可能需要将Git凭据管理器升级到1.14.0

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

答案 2 :(得分:13)

如果您使用的是Android Studio或IntelliJ IDEA,将Git更新为the latest version并将路径更改为指向新版本可以解决问题。

Enter image description here

答案 3 :(得分:8)

使用TortoiseGit,我为此提供了所有其他修复/更新,但仍然没有成功。我发现了这个: Can't git push/pull/fetch suddenly

我的用于Windows Git.exe路径的Git的TortoiseGit设置指向Sub test() Dim ie As InternetExplorer Dim RegEx As RegExp, RegMatch As MatchCollection Dim MyStr As String Dim pDisp As Object Dim dtStartTime As Date Set ie = New InternetExplorer Set RegEx = New RegExp Dim iedoc As Object SearchEng = "http://easysearch.org.uk/search/?s=" LastRow = Range("A1").End(xlDown).Row Do Until i = LastRow + 1 SearchMe = Range("A" & i) ie.Navigate SearchEng & SearchMe Do Until ie.ReadyState = READYSTATE_COMPLETE Loop MyStr = ie.document.body.innerText Set RegMatch = RegEx.Execute(MyStr) If RegMatch.Count > 0 Then ie.Navigate RegMatch(0) Do Until ie.ReadyState = READYSTATE_COMPLETE Loop ie.Visible = True Set iedoc = ie.document ''NEED TO ADD SOMETHING HERE TO CLICK LINK'' End If i = i + 1 Do Until ie.ReadyState = READYSTATE_COMPLETE Loop Loop Set RegEx = Nothing ie.Quit Set ie = Nothing End Sub 。我将其更改为C:\Program Files (x86)\Git\bin,现在又恢复了工作。

答案 4 :(得分: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

答案 5 :(得分:6)

在我的情况下更新Git是不够的。经过几个小时的调试后,这是我的修复:

scala> val pattern = "^(.+?)\\((.+?)\\,(.+?)\\)".r
pattern: scala.util.matching.Regex = ^(.+?)\((.+?)\,(.+?)\)

scala> "foo(1, \"str_arg\")" match  { case pattern(x, y, z) => println(s"$x $y $z")}
foo 1  "str_arg"

答案 6 :(得分:2)

我在Visual Studio Code终端上从GitHub中提取代码时遇到了同样的问题。我发现以前答案中的建议很有用,并按照以下步骤一起破解了解决方案:

This repository非常有用。

我希望这有助于某人。

答案 7 :(得分:2)

TL; DR:git config --system http.sslbackend schannel并在您的防病毒软件中关闭github.com的HTTPS检查

我在Windows 8 x64上使用Git命令行。此外,我的防病毒软件默认检查HTTPS流量。像其他人一样回答这个问题,我几乎每天都会使用GitHub。

  • 更新Git - 没有帮助 - 因为我使用了OpenSSL(见下文)
  • 更新凭据管理器 - 没有帮助

然后我开始玩切换SSL后端:

git config --system http.sslbackend openssl ----------------vs------------------ git config --system http.sslbackend schannel 并且防病毒软件会检查SSL流量:

  1. OpenSSL,HTTPS检查ON:error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
  2. OpenSSL,HTTPS检查OFF:SSL certificate problem: unable to get local issuer certificate
  3. SecureChannel,HTTPS检查ON:schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
  4. SecureChannel,HTTPS检查OFF:工作正常
  5. P.S。:而不是命令行,您可以重新安装最新的Git,选择“使用本机Windows SSL验证库”。

    P.P.S。:案例(3)似乎是schannel库中的一个错误,因为我的防病毒软件使用的MITM证书在我的机器上列入白名单。

答案 8 :(得分:1)

对我来说同样适用于Git 1.9.5.msysgit.1。我尝试安装https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0,但没有变化。

实际上,安装后没有任何事情发生;也许我做错了什么? (对于最初的问题,这可能没有帮助,但对于其他人,是的!)

答案 9 :(得分:1)

快速解决方案是 git config --global http.sslVerify true ,但不推荐使用SSL,因为它会破坏目的。

第二种更好的方法是使用ssh密钥而不是SSL URL。

生成SSH密钥的步骤

o在Git终端(Git Bash)中运行以下命令: ssh-keygen

运行该命令后,将显示以下消息:

生成公钥/私钥RSA密钥对。

输入要保存密钥的文件(/ 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)等等。)

答案 10 :(得分:1)

是的,我今天在拉取请求上遇到了同样的问题,解决方案是通过下载最新的(2.16.2)64位版本的Git for Windows来简单地更新Git。它于5天前发布,2018-02-20。

答案 11 :(得分:1)

在macOS上,您可以install通过git DEMO ON SQL Fiddle发送Homebrew

答案 12 :(得分:0)

连接到远程存储库以获取,拉取,推送等时,我遇到了同样的错误:

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

我刚刚重新安装Git 64位代替32位并解决了这个问题。

安装后,验证环境变量中的Git路径。它应该是:

C:\Program Files\Git\bin\git.exe

答案 13 :(得分:0)

这是IntelliJ和RubyMine的问题。 GitHub必须禁用SSL(可能是PCI兼容性?)而支持TLS。如果在IntelliJ或RubyMine中打开“设置”并导航到“版本控制”> Git,你会看到它正在使用应用程序路径下安装的git.exe。您应该下载最新版本的Git并更改VCS设置中的路径以指向该路径,例如C:\ Program Files \ Git \ bin \ git.exe如果在Windows上安装它。之后就像一个魅力。

答案 14 :(得分:0)

有时,这是由于使用旧ssl且不再进行维护的过时的msysgit引起的,您可以安装最新的git for windows,然后将乌龟设置中的git.exe路径指向它,然后此问题就消失了。

答案 15 :(得分:0)

遇到类似的错误。 在Windows上,将Windows上的git更新到最新版本。 那解决了问题。

答案 16 :(得分:0)

Git版本升级帮了我大忙。我的版本是 1.9.5 ,因此,我在Windows上升级到了 2.21.0 。升级也很容易。我们不需要卸载旧版本。下载最新的Git安装程序,然后继续使用默认选项继续按下,然后该版本将更改为新版本,所有旧设置仍将像ssh密钥等一样工作。我们无需再次生成密钥并放入github或任何其他存储库。

以前我的https协议克隆不起作用并给出了错误

  

致命:无法访问“ https://github.com/tensorflow/models/”:   错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报   协议版本

一旦我下载了新版本并运行了相同的克隆命令,它就不会出现任何问题。