代码之家  ›  专栏  ›  技术社区  ›  xpt

git致命错误:不支持的SSL后端“schannel”

  •  0
  • xpt  · 技术社区  · 4 年前

    试图访问 git-bash 已准备好的git回购协议 git ,我得到:

    $ git pull
    fatal: Unsupported SSL backend 'schannel'. Supported SSL backends:
            gnutls
    

    下列的 Using Git Bash under WSL ,我做完了 git config http.sslBackend openssl :

    $ git config http.sslBackend 
    openssl
    
    $ git config --global http.sslBackend
    openssl
    

    以下提示 from reddit ,我做了:

    sudo apt install -y gnutls-bin
    
    # and here are my installed packages:
    ii gnutls-bin  amd64 GNU TLS library - commandline utilities
    ii libcurl3-gnutls:amd64  amd64 easy-to-use client-side URL transfer library (GnuTLS flavour)
    ii libgnutls-dane0:amd64  amd64 GNU TLS library - DANE security support
    ii libgnutls30:amd64  amd64 GNU TLS library - main runtime library
    

    我还缺什么?

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 10 (buster)
    Release:        10
    Codename:       buster
    

    在Windows WSL中运行。

    附言 .经过所有这些调整, git bash 还可以 pull 这个git回购很好,所以我猜 SSL backend 'schannel' 在本回购协议的其他地方配置。

    PPS .发现这与 " git bash 已准备好的git回购” ,因为即使克隆一个新的也会给我同样的错误。

    这是我的 git config --show-origin -l 输出,如果需要包含更多内容,请告诉我:

    $ git config --show-origin -l | grep -E 'ssl|http'
    file:/home/me/.gitconfig        http.sslbackend=openssl
    file:.git/config        http.sslverify=false
    file:.git/config        http.sslbackend=openssl
    file:.git/config        http.emptyauth=true
    file:.git/config        remote.origin.url=http://xxx:8080/tfs/DefaultCollection/xxx
    file:.git/config        lfs.http://xxx:8080/tfs/DefaultCollection/xxx/info/lfs.access=ntlm
    
    0 回复  |  直到 4 年前
        1
  •  7
  •   bk2204    4 年前

    总的来说 http.sslBackend 选项仅在Windows上可用。大多数Linux发行版都不提供这个选项,因为它们不使用多个TLS库进行编译。

    正确的解决方法是去除所有 http。sslBackend 选项:

    $ git config --unset-all http.sslBackend
    

    如果出于某种原因必须使用OpenSSL,则需要自己编译。大多数Linux发行版都被法律禁止在GPLv2下发布链接到OpenSSL的Git,所以他们通常不会这样做。

        2
  •  3
  •   Martin Larizzate    4 年前

    由于@bk2204提供的解决方案对我不起作用,我试图手动将其更改为“gnutls”值,结果成功了。

    1-我尝试了@bk2204 fix,但对我无效。

    git config——取消设置所有http。sslBackend

    2-尝试设置http。sslBackend到“openssl”

    git config——全局http。sslBackend“openssl”

    3-“如果cmd提出GNUTL,为什么不使用它?

    git config——全局http。sslBackend“gnutls” 它也不起作用

    4-手动更改!

    cmd:vim~/。gitconfig 将http sslBackend的值替换为gnutls

    泰德!

    .gitconfig结果

    [http]
            sslBackend = gnutls