GitHub Windows client derrière le proxy

j'essaie de faire fonctionner le client Github pour Windows. Je suis sur un ordinateur Win 7 x64 d'entreprise derrière un mandataire d'entreprise et un pare-feu. En suivant divers autres messages et en expérimentant de multiples combinaisons de variables d'environnement et de variables de configuration, j'ai trouvé que la seule façon d'obtenir des mises à jour de clonage et de push est d'utiliser la variable D'environnement HTTPS_PROXY, y compris mon identifiant d'utilisateur et mot de passe de domaine d'entreprise complet.

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

Notes complémentaires:

ouvré:

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

a pas "1519240920 de travail":

  • omettre le nom d'utilisateur et le mot de passe de la variable HTTPS_PROXY
  • utilisant une variable d'environnement appelée HTTP_PROXY (no S )
  • ajoutant la variable http.proxy au fichier de configuration global ( .gitconfig )
  • ajoutant la https.proxy varaible au fichier global de configuration

dans tous les cas, le GitHub client ne reconnaît toujours pas le mandataire: le contenu du fichier TheLog.txt toujours affiche ce qui suit 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 est suivi de la sortie de plusieurs tentatives d'authentification par procuration infructueuses, qui indiquent toutes que" les justificatifs d'identité sont manquants."

85
demandé sur Joshua Honig 2013-04-22 21:47:11

9 réponses

ajoutez ces entrées à votre".fichier gitconfig' dans votre répertoire utilisateur (passez à %USERPROFILE%):

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

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

et si vous ne voulez pas stocker votre mot de passe en clair, j'utiliserais un mandataire local comme CNTLM qui vous permet de diriger tout le trafic à travers elle et peut stocker les mots de passe hachés.


contrairement à la question originale, si vous ne vous souciez pas si votre mot de passe est en clair texte ajouter:

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

[https]
    proxy = https://<username>:<password>@<proxy address>:<proxy port>
123
répondu Sogger 2018-01-26 21:55:28

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

L'installer et exécuter cntlm-H, que d'authentifier à corp proxy, éditer cntlm.fichier ini avec la sortie de cntlm, redémarrez le service windows. Mettre. gitconfig avec:

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

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

13
répondu Anton 2013-12-10 07:36:29

J'ai pu faire travailler Github Shell avec notre mandataire. Je lance Github Shell et exécute la commande suivante:

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

je voudrais vraiment faire GUI à travailler aussi. Mais je ne veux pas mettre Windows global environment variable qui contient mes justificatifs d'identité d'entreprise.

étrangement Github GUI Client est capable de se connecter à GitHub pour l'authentification de l'utilisateur, mais seul problème est avec le clonage, la traction et pousser des projets de et vers GitHub. Il semble que le problème soit lié à la mise en œuvre du git. J'ai pu configurer git pour passer par notre proxy sans mettre mes informations d'identification dans les paramètres git global et il demandait mes informations d'identification tout en exécutant des requêtes pull ou push. Mais ça ne marchait qu'avec Git Shell.

8
répondu edufinn 2013-06-12 11:51:43

si vous utilisez Github pour Windows dans une entreprise, il y a de fortes chances que vous soyez derrière un pare-feu/Proxy D'entreprise. Github for Windows n'a pas encore les paramètres proxy dans son interface graphique pour définir les Options.

pour configurer Github pour que Windows utilise votre proxy d'entreprise, éditez le .le fichier gitconfig se trouve typiquement à C:\Users\.gitconfig ou C:\Documents & Settings\.gitconfig

Fermer GitHub pour fenêtres; In .gitconfig, il suffit d'ajouter

[https] mandataire = mandataire.votre entreprise.com: port

7
répondu Manivannan 2013-09-04 11:59:03

j'ai également couru dans cette question, et essayé de creuser dans elle un peu aussi bien (démonté le client).

le morceau de code qui génère les messages de log 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);
    }
}

donc ce bloc ne enregistre que les informations de proxy qui sont setup dans IE . Le message log semble n'avoir aucune influence sur ce que nous avons configuré dans les fichiers de configuration ou les variables d'environnement.

4
répondu DustinTheDev 2013-06-13 15:49:59

Je ne sais pas à propos de votre pare-feu, mais mon campus utilise proxy

utilisez-vous un git gui? modifier : juste remarqué que vous utilisez GitHub client pour windows

j'utilise tortoisegit et c'est très facile de définir le proxy. Cliquez simplement avec le bouton droit de la souris n'importe où, tortoisegit>network, activez le serveur mandataire et définissez l'adresse du serveur, le nom d'utilisateur et le mot de passe. fait

pour autant que je me souvienne, tortoisegit fonctionne aussi out-of-the-box avec github.

3
répondu bysreg 2013-04-22 17:51:50

Voici la façon de définir proxy dans github

git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>

ici dans mon collège nous n'avons pas de nom d'utilisateur et mot de passe, donc si notre collège ip est 172.16.10.10 et le port est 8080

git config --global http.proxy http://172.16.10.10:8080
git config --global https.proxy http://172.16.10.10:8080

P. S -> je vous conseille d'utiliser cette méthode pour configurer le proxy que les choses vont se mettre en place comme vous l'apprendrez plus

Source

2
répondu royatirek 2017-12-28 09:06:03

j'ai trouvé ce blog pour être utile. Il décrit ntlmaps proxy. C'est probablement moins sûr, mais ça a bien marché. Je n'ai pas pu faire marcher cntlm.

1
répondu Aksakal 2014-06-04 18:32:42

pour nous, la solution impliquait deux choses différentes. Tout d'abord, comme décrit dans la réponse de Sogger, vous devez ajouter les entrées à votre .gitconfig fichier, situé dans %USERPROFILE% .

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

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

Deuxième, (et c'était la pièce manquante pour nous), vous devez configurer une exception sur le serveur proxy pour permettre non-identifié trafic proxy *.github.com

Dans iPrism, il ressemble à ce: enter image description here

le problème n'est pas tant le proxy, que l'authentification . Le contournement de l'exigence d'authentification permet la communication nécessaire pour cloner et travailler avec des projets en utilisant le client de bureau GitHub.

notez également que cette approche n'exigeait pas de stocker les justificatifs d'identité dans le fichier .gitconfig .

1
répondu AdamsTips 2016-09-23 19:22:54