88 votes

Client Windows GitHub derrière le proxy

Je vais essayer d'obtenir le client GitHub pour Windows de travail. Je suis sur une entreprise Win 7 x64 ordinateur derrière un proxy d'entreprise et de pare-feu. A la suite de divers autres postes, et d'expérimenter avec de multiples combinaisons de variables d'environnement et les variables de configuration, j'ai trouvé la seule façon d'obtenir de clonage et de pousser les mises à jour pour travailler, c'est à l'aide de la HTTPS_PROXY variable d'environnement, y compris mon domaine d'entreprise de l'ID d'utilisateur et le mot de passe.

C'est inacceptable d'un point de vue sécurité. Est-il un autre moyen pour obtenir que cela fonctionne?

Notes supplémentaires:

La suite travaillé:

  • Ajouter une variable d'environnement appelée HTTPS_PROXY avec la valeur http://[domain]\[userid]:[password]@someproxy.mycorp.com:8080

La suite n'a pas de travail:

  • L'omission de l'id d'utilisateur et le mot de passe à partir d' HTTPS_PROXY variable
  • À l'aide d'une variable d'environnement appelée HTTP_PROXY (n S)
  • L'ajout de l' http.proxy global à la variable du fichier de config (.gitconfig)
  • L'ajout de l' https.proxy fait pour le mondial de fichier de config

Dans tous les cas, le GitHub client ne reconnaît toujours pas le proxy: Le contenu du fichier TheLog.txt toujours le suivant au démarrage:

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

Et il est suivi par la sortie de plusieurs échecs de tentatives d'authentification de proxy, qui indiquent tous "les Pouvoirs sont absents."

127voto

Sogger Points 2761

Ajoutez ces entries à votre fichier '.gitconfig' dans votre répertoire utilisateur (allez à% USERPROFILE%):

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

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

Et si vous ne souhaitez pas stocker votre mot de passe en texte brut, j'utiliserais un transitaire proxy local, tel que CNTLM, qui vous permet de diriger tout le trafic et de stocker les mots de passe hachés.


Contrairement à la question initiale, si vous ne vous souciez pas de savoir si votre mot de passe est en texte brut :

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

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

14voto

Anton Points 607

Tout essayé d'au - dessus et n'a pas réussi, la seule chose qui m'a aidé est CNTLM - http://cntlm.sourceforge.net/.

L'installer et l'exécuter cntlm -H, de s'authentifier sur le corp de proxy, de modifier cntlm.fichier ini avec la sortie de cntlm, redémarrer le service windows. La mise à jour .gitconfig:

[https] proxy = localhost:3128
[http] proxy = localhost:3128

Maintenant cntlm fera tout l'authentification, et vous serez en mesure d'utiliser GitHub(et Dropbox, btw) derrière le corp de proxy. Au moins jusqu'à la prochaine modification du mot de passe :) (que cntlm -H des trucs encore)

8voto

edufinn Points 195

J'ai été en mesure de faire GitHub Shell pour travailler avec notre proxy d'entreprise. Je commence GitHub Shell et exécuter la commande suivante:

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

J'aimerais vraiment faire de la GUI de travailler trop. Mais je ne veux pas activer Windows global variable d'environnement qui contient mon entreprise informations d'identification.

Étrangement GitHub GUI Client est en mesure de se connecter à GitHub pour l'authentification de l'utilisateur, mais seul problème, c'est le clonage, en tirant et en poussant des projets à partir de et vers GitHub. Il me semble que le problème est avec git mise en œuvre. J'ai pu configurer git à exécuter par le biais de notre formulaire de vote sans mettre mes informations d'identification dans le git paramètres globaux et elle a demandé pour mes informations d'identification lors de l'exécution de tirer ou de pousser les demandes. Mais qui ne travaillait qu'en Git Shell.

7voto

manivannan Points 51

Si vous utilisez GitHub pour Windows dans une entreprise, les chances sont élevées que vous êtes derrière un grand méchant Pare-feu/Proxy. GitHub pour Windows qui n'a pas encore les paramètres du proxy dans son interface graphique pour la configuration des Options.

Pour configurer GitHub pour Windows pour utiliser un proxy d'entreprise, modifier le .gitconfig fichier on trouve généralement à C:\Users\.gitconfig ou C:\Documents & Settings\.gitconfig

Près de GitHub pour Windows; Dans .gitconfig, il suffit d'ajouter

[https] proxy = proxy.yourcompany.com:port

4voto

vintagemud Points 26

J'ai également rencontré ce problème et j'ai essayé de le comprendre un peu plus (désassemblez le client).

Le code qui génère les messages de journal que nous voyons est le suivant:

 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);
    }
}
 

Ce bloc ne consigne donc que les informations de proxy configurées dans IE . Le message du journal semble n'avoir aucune incidence sur ce que nous avons configuré dans les fichiers de configuration ou les variables d'environnement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: