Gitでプロキシサーバーを使用するにはどうすればよいですか?
Gitサーバーからコードをチェックアウトする必要がありますが、毎回「リクエストがタイムアウトしました」と表示されます。どうすればこれを回避できますか?
または、プロキシサーバーを設定するにはどうすればよいですか?
Gitでプロキシサーバーを使用するにはどうすればよいですか?
Gitサーバーからコードをチェックアウトする必要がありますが、毎回「リクエストがタイムアウトしました」と表示されます。どうすればこれを回避できますか?
または、プロキシサーバーを設定するにはどうすればよいですか?
回答:
使用するコマンド:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
プロキシユーザーに変更するproxypwd
プロキシパスワードに変更するproxy.server.com
プロキシサーバーのURLに変更します。8080
プロキシサーバーで構成されているプロキシポートに変更するこれはhttpとhttpsの両方のリポジトリで機能することに注意してください。
いつでもこのプロキシをリセットしてプロキシなしで作業することにした場合:
使用するコマンド:
git config --global --unset http.proxy
最後に、現在設定されているプロキシを確認します。
git config --global --get http.proxy
%40
代わりに使用できますが、@
私はこれを自分でテストしていません。それが役に立てば幸い。:-)
これは、企業ファイアウォールの背後にあるWindows XPで機能しました。
http://code.google.com/p/msysgit/downloads/list?can=3からgit v1.771以外のローカルプロキシやその他のソフトウェアをインストールする必要はありませんでした
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
proxyuser =私のIT部門によって割り当てられたプロキシユーザー。私の場合は、自分のPCへのログインに使用しているのと同じWindowsユーザー、Active Directoryユーザーです。
proxypwd =プロキシユーザーのパスワード
proxy.server.com:8080 =プロキシ名とポート、コントロールパネル、インターネットオプション、接続、LAN設定ボタン、[プロキシサーバー]セクション内の[詳細設定]ボタンから取得し、最初の(http)行でサーバー名とポートを使用します。
mygithubuser = github.comへのログインに使用するユーザー
mygithubpwd = github.comユーザーのパスワード
repoUser =リポジトリのユーザー所有者
repoName =レポの名前
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
加えて、simplicidade.org / notes / archives / 2011/06 /…(thanks:stackoverflow.com/a/7206627/98528に記載されているようにダウンロードされた証明書)は私のためにそれを行いました!
git://
プロトコルを使用してリポジトリのクローンを作成するように依頼すると、gitはまだ機能しません。
http_proxy
という値で名前が付けられたシステム変数を設定しますProxyServer:Port
。それが最も簡単な解決策です。それぞれ、https_proxy
大府がコメントで指摘したように使用します。
(sleskeが言及しているように)gitproxyを設定することも別のオプションですが、これには「コマンド」が必要です。これは上記のソリューションほど簡単ではありません。
参照:http : //bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
http_proxy
は、HTTP URLおよびhttps_proxy
HTTPS URLに必要です。または、all_proxy
すべてのURLに設定することもできます。curl(1)のENVIRONMENT
セクションを参照してください。ただし、git-configオプションの設定中は、HTTPとHTTPSの両方のURLに使用されます。git-config(1)を参照してください。http.proxy
http.proxy
プロキシサーバーを構成するコマンドラインの方法が機能しない場合は、おそらく.gitconfigを編集して(プロファイルのルートで、C:\ Documents and Settingsと一部のネットワークドライブの両方で非表示になる可能性があります)、これを追加します:
[http]
proxy = http://username:password@proxy.at.your.org:8080
YMMVでも、これはコマンドライン構成の最初のステップのみをカバーしています。システムのgit設定も編集する必要があるかもしれませんが、私は彼らがそれをどこに隠したかわかりません。
を使用する代わりgit config --global http.proxy address:port
に、コマンドラインでプロキシを設定できます。
git -c "http.proxy=address:port" clone https://...
利点は、プロキシが永続的に設定されないことです。Bashでエイリアスを設定できます:
alias git-proxy='git -c "http.proxy=address:port"'
ubuntuを使用している場合は、次の操作を行います...
手順1:corkscrewをインストールする
$ sudo apt-get install corkscrew
ステップ2:git-proxy.shという名前のスクリプトを記述し、以下を追加します
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
ステップ3:スクリプトを実行可能にする
$ chmod +x git-proxy.sh
手順4:環境変数を設定してGITのプロキシコマンドを設定する
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
次のようなgitコマンドを使用します
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
代わりに使用する必要があり$*
ます。詳細については、シェルのマニュアルを参照してください。
.gitconfig
ウィンドウ内に複数のファイルがあるため同じ問題に直面し、以下を同じ手順で修正しました:
ステップ1: Git BASHを開く
ステップ2:を探し.gitconfig
、次のコマンドを実行します。
git config --list --global --show-origin
手順3:以下の内容をにコピーします.gitconfig
。
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
以下を〜/ .gitconfigファイルに追加してみてください:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
gitプロトコル(git:// ...)の場合、socatをインストールし、次のようなスクリプトを記述します。
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
それを実行可能にして、パスに入れ、~/.gitconfig
セットcore.gitproxy
にそのスクリプトの名前を入れます。
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
GITにgit configをいじらずにプロキシを使用させるために使用できます。
ここで私が気付いて共有したいことがあります:
git config --global http.proxy http://<proxy address>:<port number>
上記の方法は、ssh URL(つまり、git@github.com:<user name>/<project name>.git
)では機能しません。
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
また、HTTPSポート(https://help.github.com/en/articles/using-ssh-over-the-https-port)でSSHを設定しても、ポート(デフォルトでは22)のみが変更されるため、変更はありません。)ssh接続が接続します。
(ネイティブスピーカーではありません。必要に応じて単語を修正してください)
私は私の研究を行なったし、これを見つけたので、私は、仕事(状態/ GOV)でのWindows XP上で動作し、ここで、それは私のために働きました。お役に立てれば :)
http_proxy環境変数
プロキシサーバーまたはファイアウォールを使用している場合、コマンドラインから一部のURLにアクセスするために、http_proxy環境変数を設定する必要がある場合があります。例:perlにppmをインストールするか、Linuxにrpmを適用して、ubuntuを更新する
http_proxy変数にプロキシサーバーのホスト名またはIPアドレスを設定します。http_proxy = http:// [proxy.example.org]
プロキシサーバーでユーザー名とパスワードが必要な場合は、次の形式でそれらを含めます。http_proxy = http:// [username:password@proxy.example.org]
プロキシサーバーが80以外のポートを使用する場合は、ポート番号を含めます。http_proxy= http:// [username:password@proxy.example.org:8080]
Windows XP
- コントロールパネルを開き、[システム]アイコンをクリックします。
- [詳細設定]タブで、[環境変数]をクリックします。
- [システム環境変数]パネルで[新規]をクリックします。
- http_proxyに適切なプロキシ情報を追加します(上記の例を参照)。
Linux、Solaris、またはHP-UX
シェルに固有のコマンド(たとえば、設定またはエクスポート)を使用して、http_proxy環境変数を設定します。この変更を永続的にするには、シェルの適切なプロファイルファイルにコマンドを追加します。たとえば、bashでは、次のような行を.bash_profileまたは.bashrcファイルに追加します。
- http_proxy = http:// [username:password @ hostname:port];
- $ http_proxyをエクスポート
これらの回答に加えて、私は次の2つの点を検討するのに役立ちました。
認証スキームを強制する必要があるかもしれません:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
また、通常、NTLM認証スキーマでは、ADドメインを明示的に提供する必要がある場合があります。
git bashでは:
echo %userdomain%
そして、それに応じてhttp.proxyを更新します。
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
とにかく、CURLログを追加することで調査を助けることができます:
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
。この構成パラメーターを設定するまで、Git gersion 2.8.3は認証を送信しませんでした。
tsocksまたはproxychainsがインストールおよび構成されている場合、次のことができます。
$ tsocks git clone <you_repository>
または
$ proxychains git clone <you_repository>
それを短くするために、私は、シンボルリンク作成/usr/bin/p
のためにproxychains
、私はこのようにそれを使用することができますので、
p git clone <you_repository>
それを使ってあらゆるコマンドを代理することができます
p <cmd-need-be-proxied>
ちなみに、proxychainsは長い間更新されていません。proxychians-ngを試してみてください
端末にGitプロキシを設定する
もし
一度グローバルに設定する
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
プロキシを1つのgitプロジェクトのみに設定する場合(一部のgit接続で同じプロキシまたはプロキシをまったく使用したくない場合があります)
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
現在のプロキシ設定を表示する場合
git config --list
プロキシをグローバルに削除する場合
git config --global --unset http.proxy
git config --global --unset https.proxy
1つのgitルートのみのプロキシを削除する場合
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
ここで推奨された回答のほとんどをフォローしました。まず、次のエラーが発生しました:
致命的: ' https://github.com/folder/sample.git/ ' にアクセスできません:schannel:next InitializeSecurityContext failed:Unknown error(0x80092012)-失効関数は証明書の失効を確認できませんでした。
次に、@ Salim Hamidiが次のコマンドを試してみました
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
しかし、私は次のエラーを受け取りました:
致命的: ' https://github.com/folder/sample.git/ ' にアクセスできません:接続後にプロキシからHTTPコード407を受信しました
これは、プロキシサーバーがSSL証明書を確認できない場合に発生する可能性があります。したがって、ssl検証がオフになっていることを確認したいので(信頼されていないサイトにはお勧めしません)、@ Arpitで推奨されている次の手順を実行しましたが、少し変更しました。
1.まず、以前のプロキシ設定を必ず削除します。
git config --global --unset http.proxy
2.次に、gitconfigコンテンツをリストして取得します
git config --list --show-origin
3. gitconfigファイルの内容を次のように最後に更新します。
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
プロキシパスワードのエンコードの問題があったため、上記のすべての回答を試しましたが、何もうまくいきませんでした。
このコマンドは機能しました:
git config --global http.proxy http://username@proxy.example.com:PortNumber
コマンドにパスワードを入力しないでください。gitリポジトリに接続しようとすると、動的に要求されます。