Git 克隆警报协议版本

Git clone alert protocol version

我有一个 Git CLI 版本 2.0.5,我最近使用 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 git:clone project 克隆我的 Heroku 项目时,它工作正常并且它打印文本像正常的 git clone

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

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

routines:SSL23_GET_SERVER_HELLO:tlsv1

Git中心 removed support for TLSv1 and other protocols in early 2018:

We will then restore support for the deprecated algorithms and provide a two week grace period for these systems to upgrade their libraries before we disable support for the deprecated algorithms permanently on February 22, 2018.

Git 2.0.5 is over six years old,比这一变化早了一年多。升级到 Git.

的较新版本

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

git clone git@github.com:numpy/numpy

SSH 是一种完全不同的协议,根本不使用 TLS。如果以这种方式连接,请确保在出现提示时验证 the server's host key fingerprint

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

另一种工具(如 Heroku CLI)也可以提供自己的 git 二进制文件,而不是使用您的系统二进制文件。我不认为 Heroku CLI 会这样做,但这是您的 heroku git:clone 可能起作用而 GitHub 的 git clone 没有起作用的两个原因。