2

我在客户端上使用 Windows,并且我有 GitLab-CE 的独立安装(通过综合包),我遇到了身份验证问题,但这不是服务器问题,我只有一个客户端有问题,我可以从其他客户端访问而没有问题,那么问题出在此客户端。

当 git 需要身份验证时,我收到此错误:

fatal: Authentication failed for 'http://sgit.emuasa.es/jros/PruebaGit1.git/'

我在服务器中创建了几个存储库,当我执行pushgit 需要身份验证的操作时,客户端向我显示身份验证对话框(用户和 pwd 提示),我写了我的凭据,我得到了同样的错误。我可以使用相同的凭据访问 gitlab 前端,但我无法执行push(或clone来自私有存储库)。

只有当我将用户名和密码放入遥控器时,我才能访问:

git remote delete origin
git remote add origin http://USER:PASSWORD@sgit.emuasa.es/jros/PruebaGit1.git

然后我可以访问,但我不想让密码在远程列表中可见。

我试图只写用户:

git remote delete origin
git remote add origin http://USER@sgit.emuasa.es/jros/PruebaGit1.git

Git 提示我输入密码,但结果是一样的:

fatal: Authentication failed for 'http://jros@sgit.emuasa.es/jros/PruebaGit1.git/'

我已经使用以下方法清除了凭证助手:

git config --unset credential.helper

而且我已经从 Windows 凭据管理器中删除了凭据……但我找不到这个问题的根源……

这是一个奇怪的行为,因为我使用 github 和 gitlab(在线)存储库没有问题。

我已经卸载并重新安装了所有 git 客户端应用程序(tortoisegit、GitExtension、GitKraken)并卸载了 Git 但什么也没有......

你能帮助我吗?有任何想法吗?我能做些什么?

4

1 回答 1

1

好的,我已经解决了。

我已将 GIT_CURL_VERBOSE=1 设置为 env 变量(正如@Jcl 在他的评论中所说),我可以看到 git 连接到代理:

* Couldn't find host sgit.emuasa.es in the _netrc file; using defaults
* timeout on name lookup is not supported
*   Trying 10.31.9.20...
* Connected to proxy.XXXX.XXX (XX.XX.X.XX) port 8080 (#0)
> GET http://sgit.emuasa.es/jros/prueba2.git/info/refs?service=git-upload-pack HTTP/1.1
Host: sgit.emuasa.es
User-Agent: git/2.8.3.windows.1
Accept: */*
Accept-Encoding: gzip
Accept-Language: es, *;q=0.9
Pragma: no-cache

git 服务器是内部的,不需要通过代理。我已从以下位置删除代理配置:

  • 来自 IE 的 Internet 选项
  • git config --global --unset http.proxy
  • netsh winhttp proxy

我得到了同样的结果,git连接到代理......

我正在搜索 .gitconfig 文件,但没有找到...

最后我在我的系统上找到了一个名为HTTP_PROXYset 的环境变量并指向我的代理...

我还没有找到有关 GIT 使用此环境变量的信息,但 GIT 使用它。

于 2016-05-31T09:17:48.697 回答