我在客户端上使用Windows,我独立安装了GitLab-CE (通过总括包),我在身份验证方面有问题,但它不是服务器问题,我只有一个客户端有问题,我可以从其他客户端访问,而问题就在这个客户端。
当git需要身份验证时,我会得到以下错误:
fatal: Authentication failed for 'http://sgit.emuasa.es/jros/PruebaGit1.git/'我在服务器中创建了几个repos,当我执行push操作时,当git需要身份验证时,客户端会向我显示身份验证对话框(用户和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.gitGit提示我输入密码,但结果是相同的:
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,但是没有.
你能帮帮我吗?有什么想法吗?我能做什么?
发布于 2016-05-31 09:17:48
好的,我已经解决了。
我已经将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-cachegit服务器是内部的,不需要通过代理。我已经从以下位置删除了代理配置:
git config --global --unset http.proxynetsh winhttp proxy和我一样,git连接到代理..。
我在搜索.gitconfig文件但我找不到它..。
最后,我在我的系统上找到了一个名为HTTP_PROXY的环境变量,并指向我的代理.
我还没有找到关于GIT使用这个环境变量的信息,但是GIT使用它。
https://stackoverflow.com/questions/37539825
复制相似问题