我如何设置GIT_SSL_NO_VERIFY特定的回购仅?

我不得不使用一个没有适当证书的git服务器,但我不想这样做

env GIT_SSL_NO_VERIFY=true git command

每次我做git操作。但我也希望对其他git存储库启用SSL。有没有办法使这个本地到一个单一的回购?

982788 次浏览

你可以这样做

git config http.sslVerify "false"

在特定的回购中禁用SSL证书检查仅用于该回购。

这将不适用于git__abc0,因为你还没有本地git回购来设置标志。因此在这种情况下:

git -c http.sslVerify=false clone <path>
cd <directory>
git config http.sslVerify "false"

您可以执行以下操作

对于一次回购

git config http.sslVerify false

对于所有回购

git config --global http.sslVerify false

就像Thirumalai说的,但在克隆的存储库内部,没有--global。也就是说,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

如果你在Windows机器上安装了Git,你可以尝试以下步骤:

  1. 转到Git安装文件夹,例如:C:\Program Files (x86)\Git\etc
  2. 编辑文件:gitconfig
  3. (http)部分下,添加一行:sslVerify = false

    [http]
    sslVerify = false
    

特别是当你需要递归克隆

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

对于windows,如果需要全局配置,则运行

git config --global http.sslVerify false

在Linux上,如果你在git仓库文件夹中调用这个:

git config http.sslVerify false

这将在.git文件夹中的config文件的[http]部分中添加sslVerify = false,这也可以是解决方案,如果你想用nano .git/config手动添加这个:

...
[http]
sslVerify = false
有一个简单的方法来配置GIT以正确的方式处理您的服务器。 只需为你的git服务器添加一个特定的http部分,并指定信任哪个证书(Base64编码):

~ / .gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

这样就不会再有SSL错误,并验证(通常)自签名证书。这是最好的方法,因为它可以保护你免受中间人的攻击。当您只是禁用ssl验证时,您很容易受到这类攻击。

https://git-scm.com/docs/git-config#git-config-httplturlgt

如果你必须禁用SSL检查一个git服务器托管多个存储库,你可以运行:

git config --bool --add http.https://my.bad.server.sslverify false

这将把它添加到用户的配置中。

检查命令:

git config --bool --get-urlmatch http.sslverify https://my.bad.server

(如果你还在使用git <v1.8.5,运行git config --global http.https://my.bad.server.sslVerify false)

命令在文档结尾的解释,显示 .gitconfig内容看起来像:

[http "https://my.bad.server"]
sslVerify = false

它将忽略此服务器的任何证书检查,无论存储库是什么。

你在的代码中也有一些解释

这对我来说很管用:

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

这个问题不断出现,我还没有找到一个令人满意的结果,所以下面是对我有效的方法(基于之前的答案https://stackoverflow.com/a/52706362/1806760,这是无效的):

我的服务器是带有自签名证书的https://gitlab.dev

首先运行git config --system --edit(从一个提升的命令提示符,如果你想只为你的用户执行,则将--system更改为--global),然后在之前的任何[http]部分之后插入以下代码段:

[http "https://gitlab.dev"]
sslVerify = false

然后检查你做的是否正确:

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false

还有一点,apart from

git config --global http.sslVerify false

只要将SSL验证设置为false,您还必须拥有克隆存储库的密钥。就像这样

git clone https://5edwerwe32434lcvghjjextracgecj@github.com/myorg/MYpro.git"

5edwerwe32434lcvghjjextracgecj是在settings/开发人员设置/下从github生成的令牌