94

Windows 用の GitHub クライアントを動作させようとしています。私は、企業のプロキシとファイアウォールの背後にある企業の Win 7 x64 コンピューターを使用しています。他のさまざまな投稿をたどり、環境変数と構成変数の複数の組み合わせを試してみたところ、クローンを取得して更新をプッシュする唯一の方法は、完全な企業ドメインのユーザー ID とパスワードを含む HTTPS_PROXY 環境変数を使用することであることがわかりました。

これは、セキュリティの観点から容認できません。これを機能させる他の方法はありますか?

その他の注意事項:

以下が機能しました:

  • HTTPS_PROXY値で呼び出される環境変数を追加しますhttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080

以下は機能しませんでした:

  • HTTPS_PROXY変数からのユーザー ID とパスワードの省略
  • HTTP_PROXY(no S)という環境変数を使用する
  • http.proxyグローバル設定ファイルへの変数の追加( .gitconfig)
  • https.proxyグローバル設定ファイルへの変数の追加

いずれの場合も、GitHubクライアントは依然としてプロキシを認識しません。ファイルの内容は、起動時にTheLog.txt 常に次のように表示されます。

[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy

その後、いくつかの失敗したプロキシ認証試行の出力が続きます。これらはすべて「資格情報がありません」を示しています。

4

10 に答える 10

132

これらのエントリをユーザー ディレクトリの '.gitconfig' ファイルに追加します (%USERPROFILE% に移動します)。

[http]
    proxy = http://<proxy address>:<proxy port>

[https]
    proxy = https://<proxy address>:<proxy port>

また、パスワードをプレーンテキストで保存したくない場合は、CNTLM などのローカル プロキシ フォワーダーを使用します。これにより、すべてのトラフィックを通過させ、パスワードをハッシュして保存できます。


元の質問とは異なり、パスワードがプレーン テキストであるかどうかを気にしない場合は、次を追加します。

[http]
    proxy = http://<username>:<password>@<proxy address>:<proxy port>

[https]
    proxy = https://<username>:<password>@<proxy address>:<proxy port>
于 2013-09-04T16:14:20.783 に答える
8

GitHub Shell を企業プロキシで動作させることができました。GitHub Shell を起動して、次のコマンドを実行します。

export http_proxy=http://<username>:<password>@<corporate proxy>:3128

GUIも機能させたいと思っています。しかし、企業の資格情報を含む Windows グローバル環境変数を設定したくありません。

奇妙なことに、GitHub GUI クライアントはユーザー認証のために GitHub に接続できますが、唯一の問題は、GitHub からのプロジェクトのクローン作成、プルおよびプッシュに関するものです。問題はgitの実装にあるようです。資格情報を git グローバル設定に入れなくても、プロキシ経由で実行するように git を構成できました。プルまたはプッシュ リクエストの実行中に資格情報を要求されました。しかし、それは Git Shell でのみ機能していました。

于 2013-06-12T11:51:43.273 に答える
7

企業で GitHub for Windows を使用している場合、大きな悪意のある企業ファイアウォール/プロキシの背後にいる可能性が高くなります。GitHub for Windows の GUI には、オプションを設定するためのプロキシ パラメータがまだありません。

企業プロキシを使用するように GitHub for Windows を構成するには、通常 C:\Users\.gitconfig または C:\Documents & Settings\.gitconfig にある .gitconfig ファイルを編集します。

GitHub for Windows を閉じます。.gitconfig で、追加するだけです

[https] プロキシ = proxy.yourcompany.com:ポート

于 2013-09-04T11:59:03.377 に答える
4

私もこの問題に遭遇し、少し掘り下げようとしました(クライアントを分解しました)。

表示されているログ メッセージを生成するコードは次のとおりです。

private static void LogProxyServerConfiguration()
{
    WebProxy defaultProxy = WebProxy.GetDefaultProxy();
    string str = defaultProxy.Address != (Uri)null ? defaultProxy.Address.ToString() : "(None)";
    StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy information: {0}", str);
    try
    {
        if (defaultProxy.Credentials == null)
        {
            StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Couldn't fetch creds for proxy", new object[0]);
        }
        else
        {
            NetworkCredential credential = defaultProxy.Credentials.GetCredential(GitHubClient.GitHubDotComUri, "Basic");
            StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy is authenticated: {0}", credential != null && !string.IsNullOrWhiteSpace(credential.UserName));
        }
    }
    catch (Exception ex)
    {
        StartupLogger.log.InfoException("Couldn't fetch creds for proxy", ex);
    }
}

したがって、このブロックは IE で設定されたプロキシ情報のみをログに記録します。ログ メッセージは、構成ファイルまたは環境変数で設定した内容とは関係がないようです。

于 2013-06-13T15:49:59.723 に答える
3

ファイアウォールについてはわかりませんが、私のキャンパスではプロキシを使用しています

git guiを使用していますか?編集:Windows用のgithubクライアントを使用していることに気付きました

私は tortoisegit を使用していますが、プロキシの設定は非常に簡単です。tortoisegit>network の任意の場所を右クリックし、プロキシ サーバーを有効にして、サーバー アドレス、ユーザー名、およびパスワードを設定します。終わり

私が覚えている限り、tortoisegit は github でもすぐに使用できます。

于 2013-04-22T17:51:50.407 に答える