git 克隆总是失败 "Failed sending HTTP request"

git clone always fails with "Failed sending HTTP request"

在一个特定的主机上,我无法 git 通过 https:GitHub 克隆任何 GitHub 仓库:

git clone https://github.com/llvm/llvm-project.git
Cloning into 'llvm-project'...
fatal: unable to access 'https://github.com/llvm/llvm-project.git/': Failed sending HTTP request

我发现的所有类似内容都在谈论 SSL 服务器证书验证失败(例如 here or here)。 运行 strace 下的命令确实表明命令在失败之前遍历了我的所有证书,但是 http.sslVerify => false hack 没有效果(就像上面的第二个问题一样)。

我已经重新安装了 gitca-certificates 软件包;没有效果。

有人有什么想法吗?即使是有关如何引导 git 告诉我更多有关问题的建议,我们也将不胜感激。

如果您 git version 足够新,您可以使用 trace2 来显示 Git 正在尝试做的事情:

GIT_TRACE2=1 git clone https://...
GIT_TRACE2_EVENT=1 git clone https://...

我怀疑您的主机上有一个不同的(较旧的)libcurl,与其他主机相比,这会导致 HTTP 请求未发送。

也可以在/usr/bin中查看git的动态库依赖:

ldd git

用另一个解决方案遇到了同样的问题。我 post 这个答案是因为这个问题 smh 同时出现在我所有的 MX Linux 盒子上。就我而言,这是一个不匹配的版本,可以通过 here.

中的解决方案解决

# apt reinstall libcurl3-gnutls/stable 成功了。

建议为此激活 debian/security apt 存储库。

编辑:请参阅 gpweb cgti 的答案以获得更深入和永久的解决方案

在 Debian Buster 上出现同样的问题!

这里报告了问题: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987187

我的电脑是这样的:

DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
  Instalado: 7.74.0-1.2~bpo10+1
  Candidato: 7.74.0-1.2~bpo10+1
  Tabela de versão:
 *** 7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
     7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
  Instalado: 7.74.0-1.2~bpo10+1
  Candidato: 7.74.0-1.2~bpo10+1
  Tabela de versão:
 *** 7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
     7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
  Instalado: 7.64.0-4+deb10u2
  Candidato: 7.64.0-4+deb10u2
  Tabela de versão:
     7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
 *** 7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
        100 /var/lib/dpkg/status

然后,我成功了!

DEBIAN10$ apt reinstall libcurl3-gnutls/stable

现在可以了! (感谢@Cobalt)

更改后的配置:

DEBIAN10$ apt policy curl:amd64 libcurl4:amd64 libcurl3-gnutls:amd64
curl:
  Instalado: 7.74.0-1.2~bpo10+1
  Candidato: 7.74.0-1.2~bpo10+1
  Tabela de versão:
 *** 7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
     7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl4:
  Instalado: 7.74.0-1.2~bpo10+1
  Candidato: 7.74.0-1.2~bpo10+1
  Tabela de versão:
 *** 7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
     7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
libcurl3-gnutls:
  Instalado: 7.64.0-4+deb10u2
  Candidato: 7.64.0-4+deb10u2
  Tabela de versão:
     7.74.0-1.2~bpo10+1 100
        100 http://deb.debian.org/debian buster-backports/main amd64 Packages
 *** 7.64.0-4+deb10u2 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
        100 /var/lib/dpkg/status

另外,在/etc/apt/preferences.d/99debian-backports文件中添加以下内容,以免下次升级时再次出现问题!

/etc/apt/preferences.d/99debian-backports
Package: *
Pin: release a=buster-backports
Pin-Priority: 900

Package: libcurl3-gnutls:amd64
Pin: release a=stable
Pin-Priority: 901

由于某些未知原因,之前的解决方案不再有效。
现在,它看起来很好。

sudo apt-get -t buster reinstall libcurl3-gnutls:amd64=7.64.0-4+deb10u2
sudo apt-mark hold libcurl3-gnutls