gitが接続後にプロキシからHTTPエラー407を返す


95

gitを使用してPCからgithubに接続しているときに問題が発生しました。システム勝利7。

私はプロキシ経由で接続しているので、それをgit構成ファイル(一般にgitフォルダーとgit repoフォルダーの両方)で指定しました。これを行うには、gitブッシュの次の行を入力します。

$ 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

何を試したらいいかわからない。


stackoverflow.com/questions/8561671の複製?httpsプロキシに関する私の回答を参照してください。
thinkOfaNumber 2015

1
AD環境でWindowsパスワードを更新した後も、同じ問題が発生していました。プロキシサーバー(cntlm)を再起動する必要があることがわかりました。
アーロンC

回答:


84

私にとってうまくいったのは、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

(私はそれが必要であることを確認します:trueに設定されている場合、「SSL証明書の問題:ローカル発行者証明書を取得できません」エラーを取得します)

私の場合、all_proxy変数を定義する必要はありません

そして最後に

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

1
「git config --global http.sslVerify false」は必要ありませんでしたが、これはおそらくプロキシ設定に依存します。
2016

1
この回答は機能しており、正解としてマークする必要があります。
Nadeem Iqbal

DOSではなくgit bashで実行する必要がありました。DOSは何もしないことに気づきました!すなわち。次のようにして確認してください:git config --global -l
theQuestionMan

URLではなくプロキシホストを指定する必要があるためgit config --global http.proxy http://username:password@proxiURL:proxiPort、回答のgit config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>正確性が低くなる以外は、質問の回答とどのように異なりますか?
ミシェルユン

魅力のような作品
Polycarp Kavoo

37

私は4つすべてを次のようにセットアップする必要がありまし.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

その時だけクローンが成功した。


ここで述べたオプションをすべて試しましたが、それでもうまくいきません。:(
Xavier Geoffrey

なぜ皆がSSL検証を回避することを提案しているのですか?これは安全ではなく、システムを危険にさらす可能性があります!
flederwiesel

3
@flederwiesel企業プロキシは悪であり、あらゆる種類の愚かさを引き起こします。たとえば、ドメイン資格情報をクリアテキストで6か所に保存して、プロキシされたリソースに実際にアクセスできるようにする必要があるからです。安全でない、会社発行のルート証明書の使用を強制する-またはSSL検証を完全にバイパス/無視する。とても悲しいです。
ggranum

36

多分あなたはすでにシステムのプロキシ設定を使用しています-この場合、設定を解除するとすべてのgitプロキシが機能します:

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

1
これにより、少なくともエラーが表示されなくなり、ユーザー名/パスワードのプロンプトが生成されました。gitクライアントがデフォルトでプロキシを正しく設定していないようです。AtlassianのSourceTreeを使用しているときに同じエラーが発生しました。
ケリーS.フランス語

これにより、Ubuntu 14.04で頭をひっかいた後の問題が解決しました!
Tim Ebenezer

2
これは、SourceTreeを使用するときにも解決しました。
TomSW、2017

自作をインストールしようとしたときにこのエラーが発生しました...これで問題が解決しました。ありがとう。
joeCarpenter

ありがとう、これは、VPNトンネルを介してリモートロケーションから作業するときに私のために働いた唯一のものです。
マット

33

gitに資格情報と認証方法をプロキシに送信させるには、次のコマンドが必要です。

git config --global http.proxyAuthMethod 'basic'

ソース:https : //git-scm.com/docs/git-config#git-config-httpproxyAuthMethod


2
これがようやく私にとってうまくいきました!設定ファイルでプロキシを設定した後。
Dhanesh KM 2019

3
これも私にとって欠けている作品でした。ありがとうございました。(通常、私も「私も」というコメントをぶつけることはしませんが、この答えはかなり遠いので、もっと愛が必要です)。
ggranum

これはまさに欠けていたものです!
ivspenna

これは、https_proxy環境変数が/ etc / environmentに設定されているため、私が必要とする唯一の git構成オプションでした。
らくらい

これは私にとっては
うまくいきました

18

私は企業のファイアウォールの背後で同様の問題に直面していました。次の方法で、Windows 7 SP1を実行しているシステムからgit shellを使用してリポジトリを複製できました。

  1. ユーザーの「all_proxy」環境変数を設定します。curlで必要です。

    export all_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  2. ユーザーの「https_proxy」環境変数を設定します。curlで必要です。

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  3. これが何らかの影響を与えるかどうかはわかりません。しかし、私はこれを行い、それはうまくいきました:

    git config --global http.sslverify false
    
  4. 複製にはhttps://を使用

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

注1: http://は使用しないでください。これを使用すると、以下のエラーが発生する可能性があります。https://を使用して解決できます。

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

注2:パスワードに@を含めないでください。$も使用できます。


https_proxy = DOMAIN \ "proxyuser:proxypwd" @ proxy.server.com:8080を二重引用符で囲み@、パスワードにan を使用できます。
Vadorequest

1
"周りに引用符を使用するトリックがあることを知っていますlogin:password。しかし、私は実際に試してみましたが、Gitは引用符を無視したため@、パスワードのはそれを台無しにしています。誰かが回避策を持っているなら、それを言及する価値があると思います。
Vadorequest、

1
上記のすべてのコマンドを試してみましたが、その後、CONNECTの後にプロキシからReceived HTTPコード407を取得し始めました。
user130934

1
特殊文字をURLエンコードできます。たとえば、@は%40になります。meyerweb.com/eric/tools/dencoder
Bryant

6

Windows環境でも同じ問題が発生しました。

NTLM-APS(Windows NT認証プロキシサーバー)で解決しました

NTMLプロキシを構成し、Gitをそれに設定します。

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

3

Android Studioから407エラーが発生しました。プロキシを追加しようとしましたが、何も起こりませんでした。会社の証明書に関連していることがわかったので、ブラウザから証明書をエクスポートしてGitに追加しました。

Webブラウザからエクスポート

[インターネットオプション]> [コンテンツ]> [証明書]> [エクスポート](ウィザードに従って、フォーマット「Base 64エンコード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

1
デフォルトのキーストアは上書きしません"C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"が、代わりに会社の証明書を追加します(リンクで説明されているように、別のファイルにある可能性があります)。
jansohn 2016

3

私は同じ問題に直面していたので、最初に設定したnpmファイルを確認しました。次のコマンドで確認しました:-

npm config get proxy

そして、私は間違ったプロキシを設定し、次のように自分の欲望プロキシを設定したことがわかります:

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

その後、それは私に働きます


1
「npm config ...」というコマンドでよろしいですか、「git config ...」である必要があるためです
Gaurav Lad


1

私の組織でも同じ問題がありました。

多くの試みの後、私は次の解決策に行きました:

  1. システム管理者に申請して、プロキシ認証タイプをKerberosからNTLMに変更しました。必須かどうかはわかりませんが(私はこの問題については無知です)、私の申請は承認されました。

  2. その後、Git設定を追加します

    git config --global http.proxyauthmethod ntlm

その後初めて、リポジトリを複製することができました


1

私も同じ問題を抱えており、http.proxyAuthMethodを明示的にbasicに設定することで解決しようとしました。

サーバーとプロキシの間でpcapトレースを実行した後、git clone中にプロキシに送信された「HTTP CONNECT」リクエストに「Proxy-Authorization」ヘッダーが基本に設定されていないことに気付きました。これは、http.proxyAuthMethodをサポートしていないgitバージョン「1.8.3.1」が原因でした。

最新のgitバージョン(2.16.6)をインストールした後、ここにある「https://repo.ius.io/7/x86_64/packages/g/」のrpmパッケージを使用して、http.proxyAuthMethodをbasicに設定すると、最終的にgitに影響がありました動作し、私のgitクローンは成功しました。

これが役に立てば幸い


0

この時点に達したら、努力に集中すべきだと思います。

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>

0

この問題は、数日前に私のBitbucketリポジトリで発生しました。リモートURLをhttpsではなくhttpに設定することで修正できました。

コマンドラインとgit configで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

0

社内で1つのプロキシを使用し、外部からVPNを使用するときに2つ目の(完全に異なる)プロキシを使用しているため、このエラーが発生しました。私はもともとオンプレミスプロキシ用に構成されていて、エラーを受け取った後、別の場所で作業するときに代替のオフプレミスプロキシを使用するように構成を更新する必要がありました。


0

私は同様の問題があり、以下の手順で解決しました:

** 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

0

この構成は私のセットアップで機能します:

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

0

sourcetreeを使用しているときに同じ問題が発生する理由は、sourcetreeが開いている間にシステムプロキシをオンからオフに切り替えたことです。何らかの理由で、これはプロジェクトの構成ファイルに書き込まれました。これは、「設定」->「構成ファイルの編集」でsourcetreeから簡単に削除できます。httpで削除してください


0

Git Bashを使用しているときにも同じ問題が発生しました。コマンドプロンプトで同じことをしたとき、それは完全に機能しました。


0

ご参考までに

これは、次のエラーを解決するための適切な解決策でした

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

0

パスワードから「@」を削除するとうまくいきましたが、とにかく@をパスワードに含めないでください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.