我每天都在使用Git(和GitHub),一切都运行正常,突然间,我无法通过我的Git命令与远程GitHub存储库进行通信。当我尝试“Git pull”时,它会出现以下错误:
致命:无法访问“https://github.com/snahrvar/eatibl.git/”: 错误:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1 alert 协议版本
因此,我在多个存储库中进行了测试,并且在计算机上出现了相同的错误。我让其他人与那些相同的存储库进行交互,它对他们来说很好。在此错误之前,我在项目上执行了“npm install sharp”并且最终失败了,我怀疑这可能与某些SSL设置混乱,但这是一个疯狂的猜测!
非常感谢任何一般性的想法或指导!
如果它有用,那么这就是我的环境:
答案 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并将路径更改为指向新版本可以解决问题。
答案 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)
这对我有用。
答案 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中提取代码时遇到了同样的问题。我发现以前答案中的建议很有用,并按照以下步骤一起破解了解决方案:
C:\Program Files (x86)\Git\bin.
更改为C:\Program Files\Git\bin
。This repository非常有用。
我希望这有助于某人。
答案 7 :(得分:2)
TL; DR:git config --system http.sslbackend schannel
并在您的防病毒软件中关闭github.com
的HTTPS检查
我在Windows 8 x64上使用Git命令行。此外,我的防病毒软件默认检查HTTPS流量。像其他人一样回答这个问题,我几乎每天都会使用GitHub。
然后我开始玩切换SSL后端:
git config --system http.sslbackend openssl
----------------vs------------------
git config --system http.sslbackend schannel
并且防病毒软件会检查SSL流量:
error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
SSL certificate problem: unable to get local issuer certificate
schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
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警报 协议版本
一旦我下载了新版本并运行了相同的克隆命令,它就不会出现任何问题。