0

通过这个先前的答案,我能够在有问题的机器上使用 SSH 使用 git clone 等。但是 - 仅在这样的机器上 - 我仍然从 git bash 中收到错误https

$ git clone https://giuliohome:mypassword@github.com/giuliohome/MyPrivateRepo.git
Cloning into 'MyPrivateRepo'...
remote: Repository not found.
fatal: Authentication failed for 'https://github.com/giuliohome/MyPrivateRepo.git/'

我尝试通过 github Web 设置创建个人访问令牌并使用它而不是密码,但它在有问题的机器上也像上面一样失败(同样,它在另一台机器上工作)。

我还尝试通过 Windows 凭据管理器删除/更改/添加 git 凭据。

编辑 对不起,我原来的问题是

证书问题:无法获取本地颁发者证书

(问题起源于昨天更新 tortoisegit 杀死了一个资源管理器进程并弄乱了我的电脑中的某些东西......)

我尝试了快速解决方法sslVerify = false并收到上述错误,但返回true我看到证书问题

这里是要求的详细信息

MYDOMAIN+MYDOMAINUSER@MYMACHINE MINGW64 /c/sviluppi/.../code/git/test2
$ git config -l --show-origin
file:C:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain
file:C:/Program Files/Git/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
file:C:/Program Files/Git/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f
file:C:/Program Files/Git/etc/gitconfig filter.lfs.process=git-lfs filter-process
file:C:/Program Files/Git/etc/gitconfig filter.lfs.required=true
file:C:/Program Files/Git/etc/gitconfig http.sslbackend=openssl
file:C:/Program Files/Git/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:C:/Program Files/Git/etc/gitconfig core.autocrlf=true
file:C:/Program Files/Git/etc/gitconfig core.fscache=true
file:C:/Program Files/Git/etc/gitconfig core.symlinks=false
file:C:/Program Files/Git/etc/gitconfig core.editor="C:\\Program Files\\Notepad++\\notepad++.exe" -multiInst -notabbar -nosession -noPlugin
file:C:/Program Files/Git/etc/gitconfig credential.helper=manager
file:C:/Users/mydomainuser/.gitconfig        user.name=Giulio
file:C:/Users/mydomainuser/.gitconfig        user.email=giuliohome@xxxx.com
file:C:/Users/mydomainuser/.gitconfig        http.sslverify=true
file:C:/Users/mydomainuser/.gitconfig        credential.https://github.com.helper=manager
file:C:/Users/mydomainuser/.gitconfig        credential.https://github.com.username=giuliohome

我在 Windows 10 Enterprise 上,我希望最终使用 tortoisegit,但目前我在 git bash 级别被阻止。所以现在我正在使用纯 git 并且我想在那里解决问题,然后我想我将能够返回 tortoisegit (再次,我在谈论 git https,因为 git ssh 就像已经说过的那样工作)

这是我的c:\users\mydomainuser\.gitconfig现在

[user]
    name = Giulio
    email = giuliohome@xxxx.com
[http]
    sslVerify = true
    sslbackend = openssl
    sslcainfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
[credential "https://github.com"]
    helper = manager
    username = giuliohome

替换sslbackend=schannelopenssl我得到后unable to get local issuer certificate

最后,让我补充一点,McAfee Endpoint Security 在这台机器上以及Blue Coat Unified Agent上都处于活动状态。

4

2 回答 2

0

ssl-backend这里的问题是您正在使用您的 git 客户端正在使用存储在您的主目录 (C:/Users/mydomainuser/.gitconfig) 中的全局 git 配置,这个 git 配置没有ssl-cainfo设置值。您需要将这两行添加到C:/Users/mydomainuser/.gitconfig

http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
于 2020-04-09T08:46:43.493 回答
0

我怀疑 https 连接实际上是基于机器的 IP 地址被某种安全机制阻止的。

我得出这个是因为如果我更改机器的 ip 并生成一个新的个人访问令牌,它似乎只工作一次,一次,因此我猜它是网络上的安全防火墙正在默默地阻止连接。他们还告诉我,通过查看 McAfee 日志,问题不存在。我已经通过在同一台机器上克隆 bitbucket 私有 repo 进行了测试,但授权失败,所以 github 看起来也没有错……

所以最后我会说它可能是本答案中描述的 Blue Coat Unified Agent 。

是的,这已得到证实,我暂时断开了 Blue Coat 统一代理的连接,并且 git clone 现在也通过 https 按预期工作。为了彻底解决它,他们从 git verbose 中注意到了错误401,并且可能委托了 github 证书。

就原始问题的描述而言,另请参阅在重现此 github 问题的步骤中报告的以下句子,关于“与 SSL 拦截相关的多个问题(具有代理的环境、企业 MITM 等) ”的上下文

建议建立一个实验室并配置一个企业级安全产品,例如 BlueCoat 或类似的执行 MITM 的产品,然后使用内部证书进行回传。

于 2020-04-09T12:46:38.763 回答