私はかなり面倒な企業プロキシの背後にいます:
- 使用される実際のプロキシ アドレスは、スクリプトによって決定されます。
- 認証が必要です
- HTTPS を使用してWeb ページの証明書を置き換えます。
このシナリオで github リポジトリのクローンを作成するにはどうすればよいですか?
最初の問題は実際には git とは関係ありません。実際にプロキシを構成できるようにするために必要な手順です。
Windows コンピューターのプロキシ構成は、[コントロール パネル] -> [インターネット オプション] -> [接続] -> [LAN 設定] で確認できます。
「自動構成スクリプトを使用する」がチェックされている場合は、最初に指定されたファイルをダウンロードして開く必要があります。小さなスクリプトを含むファイルを取得しました。それは次のように見えました:
function FindProxyForURL(url, host)
{
var myip = myIpAddress();
var hostip = dnsResolve(host);
if (isInNet(hostip,"192.168.0.0","255.255.0.0"))
return "DIRECT";
if (isInNet(hostip,"xyz.abc.0.0","255.255.0.0"))
return PROXY special-proxy:8080;
return "PROXY default-proxy:8080";
}
したがって、私の場合、使用するプロキシはdefault-proxy:8080.
実際に git にプロキシを使用させるには、git config --global http.proxy http://<domain>\<username>:<password>@default-proxy:8080.
これの明らかな欠点は、ドメイン パスワードがプレーン テキストとしてハード ディスクに保存されることです。
他の情報源はそうすべきだと主張していますが、他の設定はうまくいきませんでした。それらは次のとおりです。
https_proxyまたはhttp_proxyhttp://<domain>\<username>:<password>@default-proxy:8080git config --global https.proxy http://<domain>\<username>:<password>@default-proxy:8080http_proxyをhttp://<domain>\<username>:<password>@default-proxy:80803 番目の問題を回避するための最も簡単な方法は、環境変数を設定して証明書エラーを無視することです。プロキシによって返される証明書には何の価値もありません。
set GIT_SSL_NO_VERIFY=true
プレーンなパスワードを git config に保存しないようにするには、代わりにcntlmなどのローカル プロキシを使用できます。
代わりにパスワードハッシュを保存できます。ハッシュを取得するには、次のコマンドを使用します。
cntlm.exe -H -d <domain> -u <username>
その後、パスワードの入力を求められます。結果は 3 つのハッシュのリストになりPassNTLMv2、このシナリオに関連する可能性が最も高いのはそのうちの 1 つです。Passwordcntlm.ini の行を、パーツを含む出力の行に置き換えPassNTLMv2ます。
明らかに、代わりにこのローカル プロキシを使用するように git を構成する必要があります。
github への書き込みアクセスも必要な場合は、プロキシ経由で github への ssh アクセスを取得できる必要があります。これを行うには、 を使用できますcorkscrew。
要するに、これを行う方法は次のとおりです。
最初にコルクスクリューを展開します。次に、以下を含む
ファイルを作成します。次を追加して、プロクシ経由で
アクセスするためにコルクスクリューを使用するようにsshに指示します。~/.ssh/proxy_auth<proxy_username>:<proxy_password>github.com~/.ssh/config
host github.com
port 22
proxycommand corkscrew <proxy_ip_address> <proxy_port> %h %p ~/.ssh/myauth
次に、ssh が によってプロキシを通過できるかどうかをテストしますssh -T git@github.com。これが機能する場合、git:/プロトコルもプロキシを通過できるはずです。