首页 > 解决方案 > Git克隆警报协议版本

问题描述

我有一个版本为 2.0.5 的 Git CLI,我最近使用 Heroku 来部署我的项目。

我想使用 Git CLI 在 Github 上安装一些包,但它不起作用。当我想克隆一些存储库时,它说

fatal: unable to access 'https://github.com/numpy/numpy': error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

但是当我通过键入它来克隆我的 Heroku 项目时heroku git:clone project,它可以正常打印文本git clone

我认为克隆 Heroku 项目和克隆 Git repo 几乎相同(Heroku 克隆的方式与 Git 克隆几乎相同)。当我尝试从 GitHub 克隆时,为什么这不起作用?

标签: githerokuclone

解决方案


您的 Git 客户端正在尝试使用 TLSv1:

routines:SSL23_GET_SERVER_HELLO:tlsv1

GitHub在 2018 年初删除了对 TLSv1 和其他协议的支持

然后,我们将恢复对已弃用算法的支持,并为这些系统提供两周的宽限期以升级其库,然后我们将在 2018 年 2 月 22 日永久禁用对已弃用算法的支持。

Git 2.0.5 已经超过六年了,比这个变化早了一年多。升级到较新版本的 Git。

如果由于某种原因无法升级(我强烈建议升级),您可以使用 SSH URL 而不是 HTTPS URL:

git clone git@github.com:numpy/numpy

SSH 是一个完全不同的协议,根本不使用 TLS。如果您以这种方式连接,请确保在出现提示时验证服务器的主机密钥指纹。

请注意,GitHub 在服务器端取消了对这种旧加密协议的支持,这意味着其他提供商可能仍支持旧的、不安全的 TLS 协议。

另一个工具(例如 Heroku CLI)也可以发布自己的git二进制文件,而不是使用您的系统二进制文件。我不认为 Heroku CLI 可以做到这一点,但这是您在GitHub 上heroku git:clone可能没有工作的两个原因。git clone


推荐阅读