git returns http error 407 from proxy after CONNECT

我有一个问题,当从我的电脑连接到 github,使用 git。系统赢7。

我通过代理建立了连接,所以我在 git 配置文件中指定了它(在一般的 git 文件夹和 git repo 文件夹中)。为了做到这一点,我输入下一行我的 Git bush:

$ git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>

它在其他程序(例如: maven)上的工作方式如下:

<username> - my login to our corp system
<userpsw> -my password to corporat system
<proxy> - 10.65.64.77
<port> - 3128

但是,当我试图推动或克隆我的回购,我收到

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

我已经尝试不仅输入我的用户名,但域用户名,更改我的密码,以防有问题的代码语言表。我甚至输错了密码。错误保持不变。

当我输入“10.65.64.177.com”并试图按回购键时,我收到:

fatal: unable to access '<repo github link>': Failed connect to github.com:3128; No error

Just don't know what to try.

289440 次浏览

我在 Windows 环境中遇到过同样的问题。

我刚刚用 NTLM-APS (一个 WindowsNT 身份验证代理服务器)解决了这个问题

配置您的 NTML 代理并将 Git 设置为:

git config --global http.proxy http://<username>:<userpsw>@localhost:<port>

我在公司防火墙后面也遇到过类似的问题。执行以下操作,并能够使用 gitshell 从运行 Windows7SP1的系统中克隆存储库。

  1. 为你的用户设置“全部代理”环境变量。

    export all_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  2. Set 'https_proxy' environment variable for your user. Required by curl.

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  3. I am not sure if this has any impact. But I did this and it worked:

    git config --global http.sslverify false
    
  4. Use https:// for cloning

    git clone https://github.com/project/project.git
    

Note-1: Do not use http://. Using that can give the below error. It can be resolved by using https://.

 error: RPC failed; result=56, HTTP code = 301

注意-2: 避免在密码中使用@。

我认为你应该集中精力,在你到达这一点之后:

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

这意味着您没有使用代理进行正确的身份验证。您能否再次检查您在此步骤中提供的密码是否正确?

git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>

对我起作用的是与 rohitmohta 提议的类似的东西; 在常规 DOS 命令提示符下(不是在 git bash 上) :

第一

git config --global http.proxy http://username:password@proxiURL:proxiPort

在某些情况下

git config --global https.proxy http://username:password@proxiURL:proxiPort

那么

git config --global http.sslVerify false

(我确认这是必要的: 如果设置为真得到“ SSL 证书问题: 无法获得本地颁发者证书”错误)

在我的例子中,不需要定义 all _ agent 变量

and finally

git clone https://github.com/someUser/someRepo.git

This issue occured a few days ago with my Bitbucket repositories. I was able to fix it by setting the remote url to http rather than https.

我还尝试在命令行和 git 配置中设置 https 代理,但这不起作用。

$ git pull
fatal: unable to access 'https://username@bitbucket.org/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

请注意,我们正在使用 https:

$ git remote -v
origin  https://username@bitbucket.org/sacgf/x.git (fetch)
origin  https://username@bitbucket.org/sacgf/x.git (push)

将 https url 替换为 http url:

$ git remote set-url origin http://username@bitbucket.org/sacgf/x.git
$ git pull
Username for 'https://bitbucket.org': username
Password for 'https://username@bitbucket.org':
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 43 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (43/43), done.
From http://bitbucket.org/sacgf/x
a41eb87..ead1a92  master     -> origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to ead1a920caf60dd11e4d1a021157d3b9854a9374.
d

我必须在 .gitconfig中设置 所有四件事:

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port

直到那时克隆才成功。

也许你已经在使用 系统代理服务器设置-在这种情况下 unset all git proxies将工作:

git config --global --unset http.proxy
git config --global --unset https.proxy

您的密码似乎不正确。请重新检查您的凭证。

在 Android Studio 中出现了407错误。尝试添加代理,但什么也没有发生。发现它与公司证书有关,所以我从浏览器中导出了这个证书,并将其添加到 Git 中。

从 Web 浏览器导出

Internet Options > Content > Certificates > Export (Follow wizard, I chose format "Base 64 encoded X.509(.CER))

在 Git Bash

git config --global http.sslCAInfo c:\Utilities\Certificates\my_certificate

下面的页面很有用 Https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

添加代理,就像我使用的其他线程一样

git config --global http.proxy proxy.company.net:8080
git config --global https.proxy proxy.company.net:8080

我面临着同样的问题,所以首先我检查了我的 npm 文件,我已经设置,我检查了这个命令:-

npm config get proxy

and i find out i have set wrong proxy and i set my desire proxy as follow:

npm config set proxy http://xxx.xxx.xxx.4:8080
npm config set https-proxy http://xxx.xxx.xxx.4:8080

在那之后,它对我有用

我也遇到过类似的问题,我通过以下步骤解决了这个问题:

* * 在 git 中添加代理详细信息 * *

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port

我经历了这个错误,因为我的公司网络使用一个代理,而在前提下,第二个(完全不同)代理时,VPN 从外部。我最初配置为本地代理,接收到错误,然后必须更新配置,以便在其他地方工作时使用备用的、非预置的代理。

我的组织也有同样的问题。

经过多次尝试,我得出了以下解决方案:

  1. 我向系统管理员申请将代理身份验证类型从 Kerberos 更改为 NTLM。我不确定这是否是强制性的(我对这件事一无所知) ,但是我的申请被批准了。

  2. After that I add Git setting

    Git config ——全局 http.proxyauthmethod ntlm

只有在那之后,我才能够克隆我的存储库

要强制 git 向代理发送凭据和身份验证方法,需要执行以下命令:

git config --global http.proxyAuthMethod 'basic'

资料来源: https://git-scm.com/docs/git-config#git-config-httpproxyAuthMethod

这个配置可以在我的设置中工作:

[http]
proxy = <your proxy>
[https] proxy = <your proxy>
[http]
sslVerify = false
[https]
sslVerify = false
[credential]
helper = wincred

在使用源代码树时也有同样的问题 原因可能是在源代码树打开时将系统代理从打开切换到关闭。 由于某种原因,这被写入到项目的配置文件中。 这可以通过“设置”-> “编辑配置文件”轻松地通过源代码树删除。 在 http 下面删掉就行了

我在使用 Git Bash 时遇到了同样的问题。当我在命令提示符中做同样的事情时,它完美地工作了。

我也遇到了同样的问题,并试图通过显式地将 http.proxyAuthMethod 设置为 basic 来解决这个问题。

在我的服务器和代理之间运行 pcap 跟踪之后,我注意到 在 git 克隆期间发送给代理的 HTTP CONNECT 请求仍然没有将“ Proxy-Authorization”头设置为 basic。这是由于我的 git 版本“1.8.3.1”不支持 http.proxyAuthMethod。

在安装了最新的 git 版本(2.16.6)之后,使用在这里找到的 rpm 包“ https://repo.ius.io/7/x86_64/packages/g/”,将 http.proxyAuthMethod 设置为 basic 最终对 git 行为产生了影响,然后我的 git 克隆成功了。

希望这个能帮上忙

仅供参考

这将是解决以下错误的适当解决方案

Received HTTP code 407 from proxy after CONNECT

因此,下面的命令应该是必要的

git config --global http.proxyAuthMethod 'basic'
git config --global https.proxy http://user:pass@proxyserver:port


它将生成以下配置

$ cat ~/.gitconfig
[http]
proxy = http://user:pass@proxyserver:port
proxyAuthMethod = basic

从密码中删除“@”对我来说很有效 无论如何,不要把@放在你的密码里 它会给你的问题与 Maven 和进一步的安装

I tried all of the solutions but none of them worked. Then I saw my .gitconfig file. It had multiple repeated entries and some of them were not correct(As I had tried multiple solutions). Finally I removed all the redundant and non needed settings and just kept the four settings mentioned by Sairam Kukadala, in his answer above, and Voila! it worked.

我在 Windows10的公司机器上工作时发现了这个错误,因为它没有使用代理服务器。

从开始菜单,我必须打开设置 > 网络和互联网 > 代理和禁用“自动检测设置”。这样做之后,GitHub 立即能够克隆所需的回购。

这也许帮不了其他人,但对我来说,在其他人都无能为力的时候,它起到了作用。

如果您还没有尝试过任何疯狂的代理服务器设置,这里有一个替代的答案。确保您是通过 github.com 或 github 企业添加存储库,而不是使用 URL。如果您试图通过 URL 使用 github.com 存储库,您将看到407错误。一旦我意识到我在做什么,我的错误就消失了。

enter image description here