git - 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 克隆时,为什么这不起作用?
解决方案
您的 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
推荐阅读
- discord.js - 虽然我定义了一个频道,但nodejs说它是未定义的
- angular - 角度读取后响应标题不起作用
- firebird - 包含文本的 Firebird INDEX 表达式。可能吗?
- spring - 匿名用户无法访问允许匿名访问的 url 模式
- php - Timber Twig - 如果日期/时间是过去/现在/未来,则拆分类别帖子
- python - 如何在 Plot Pie Graph 中增大尺寸?
- azure - 不同区域的资源组和资源本身
- laravel - 背景图像未在 dompdf laravel 中显示
- oracle - 从 Oracle 数据库表生成 CSV 文件的最快方法是什么?
- instagram-api - Instagam 获取无效的平台应用程序错误