基本認証を使用するHTTPプロキシの背後にある企業ネットワークで、WindowsでGitを使用しています。アウトバウンドSSHは機能しないため、プロキシ経由でHTTPSを使用する必要があります。
git config http.proxy
を使用して設定をhttp://[username]:[password]@[proxy]:[port]
として構成する方法を知っています。
ただし、特にこれは共有マシンであるため、パスワードを.gitconfig
に保存したくないです。さらに、.gitconfig
コマンドを使用してgit config
を変更すると、パスワードがbash履歴に残ります。そのため、セッションの最後で.gitconfig
をクリアすることを覚えていても、ほぼ確実に私の歴史もクリアすることを忘れてください。
パスワードなしでhttp.proxy
を設定しようとしましたが、プッシュ/プルしようとするとパスワードを要求するプロンプトが表示されることを期待して無駄ですが、407プロキシ認証のみが必要です。オンラインで見つけたすべての情報は、.gitconfig
にプレーンテキストでパスワードを保存することに関する問題を無視するか、NTLMプロキシを扱うかのいずれかです。
接続する必要があるたびにプロキシの詳細を入力することは非常にうれしいです-現時点で確認できる最善の解決策は、パスワードを要求し、git
適切。これはまともな解決策ですか?また、スクリプト内の単一の呼び出しに環境変数を設定することはセキュリティに影響しますか?できれば、これに使用できる組み込みの設定や既存のツールはありますか?
Git設定を使用する代わりに、 this answer で説明されているように、環境変数(セッションのみに設定できる)を使用することもできます。
set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
set no_proxy=localhost,.my.company
したがって、ラッパースクリプトは、.gitconfig
を変更する(プレーンテキストでパスワードを残す)代わりに、現在のセッションだけで環境変数をオンデマンドで設定できます。
git 2.8.0以降
git config --global http.proxy http://[user]@proxyhost:port
git config --global credential.helper wincred
VonCの答えが常に問題を解決するとは限りません。理由はわかりませんが、プロキシサーバーに依存している可能性があります。
リポジトリの_git://
_プロトコルを_http://
_に置き換えると役立つ場合があります。
注:VonCの答えのように、最初にhttp(s)_proxy
環境変数をセットアップする必要があります。
_set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
_
たとえば、通常、marbleの安定版gitのクローンは次のようにクローン化されます( marble documentation から)。
git clone -b Applications/15.12 git://anongit.kde.org/marble〜/ marble/sources
Windowsのcmd
(_http_proxy
_が設定されていると仮定)では、代わりに_http[s]://
_を使用する必要があります。
_git clone -b Applications/15.12 http://anongit.kde.org/marble ~/marble/sources
_