【发布时间】:2012-02-18 23:13:04
【问题描述】:
我必须使用没有适当证书的 git 服务器,但我不想这样做
env GIT_SSL_NO_VERIFY=true git command
每次我做一个 git 操作。但我也想为其他 git 存储库启用 SSL。有没有办法将这个本地化到单个 repo 中?
【问题讨论】:
我必须使用没有适当证书的 git 服务器,但我不想这样做
env GIT_SSL_NO_VERIFY=true git command
每次我做一个 git 操作。但我也想为其他 git 存储库启用 SSL。有没有办法将这个本地化到单个 repo 中?
【问题讨论】:
你可以的
git config http.sslVerify "false"
在您的特定存储库中仅禁用对该存储库的 SSL 证书检查。
【讨论】:
--global 选项,当尚未签出回购时(无法为本地尚不存在的回购设置选项)。之后可以随时将其重新打开。
你可以这样做
对于单个回购
git config http.sslVerify false
所有回购
git config --global http.sslVerify false
【讨论】:
sudo 应该只在你真正需要 root 做某事时使用。就像安装新软件、修改重要的系统文件、重新格式化驱动器、重新配置网络、管理服务......这个家伙的问题中没有任何暗示他需要 root 才能做任何事情。如果您是管理员,您应该在大部分时间不使用 sudo 运行大部分命令(包括那些更改配置的命令)。
就像 Thirumalai 所说的那样,但在克隆存储库内部并且没有 --global。即,
GIT_SSL_NO_VERIFY=true git clone https://urlcd <directory-of-the-clone>git config http.sslVerify false【讨论】:
could not lock global config file .gitconfig: Permission deniedcould not lock global config file .gitconfig: Permission denied的情况下的好解决方案
/var/www/...
如果您在 Windows 机器上并安装了 Git,您可以尝试以下步骤:
在 [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
【讨论】:
specific repos
在 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 验证时,您很容易受到此类攻击。
【讨论】:
如果您必须为托管多个存储库的一台 git 服务器禁用 SSL 检查,您可以运行:
git config --bool --add http.https://my.bad.server.sslverify false
这会将其添加到您的用户配置中。
要检查的命令:
git config --bool --get-urlmatch http.sslverify https://my.bad.server
(如果你还在使用 git git config --global http.https://my.bad.server.sslVerify false)
来自documentation 的解释,其中命令位于末尾,显示
.gitconfig 内容看起来像:
[http "https://my.bad.server"]
sslVerify = false
它将忽略对此服务器的任何证书检查,无论存储库如何。
你在the code也有一些解释
【讨论】:
这对我有用:
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] 部分之后插入以下sn-p:
[http "https://gitlab.dev"]
sslVerify = false
然后检查你是否做的一切正确:
> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false
【讨论】:
还有一点,除了
git config --global http.sslVerify false
只需将 SSL 验证设置为 false ,您还必须拥有克隆存储库的密钥。像这样的
git clone https://5edwerwe32434lcvghjjextracgecj@github.airbus.corp/Airbus/MYX-SQL-Database.git"
5edwerwe32434lcvghjjextracgecj 是在settings/Developer settings/
下从github生成的token【讨论】: