Client Windows GitHub derrière un proxy

J’essaie de faire fonctionner le client GitHub pour Windows. Je suis sur un ordinateur d’entreprise Windows 7 x64 derrière un proxy d’entreprise et un pare-feu. En suivant divers autres articles et en expérimentant plusieurs combinaisons de variables d’environnement et de variables de configuration, j’ai trouvé que la variable d’environnement HTTPS_PROXY, y compris mon ID utilisateur et mon mot de passe de domaine d’entreprise, constituaient le seul moyen d’obtenir du clonage et des mises à jour push.

C’est inacceptable du sharepoint vue de la sécurité. Y a-t-il un autre moyen pour que cela fonctionne?

Notes complémentaires:

Les suivants ont travaillé:

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

Ce qui suit n’a pas fonctionné:

  • Omettre l’ID utilisateur et le mot de passe de la variable HTTPS_PROXY
  • Utiliser une variable d’environnement appelée HTTP_PROXY (no S )
  • Ajout de la variable http.proxy au fichier de configuration global ( .gitconfig )
  • Ajout du https.proxy https.proxy au fichier de configuration global

Dans tous les cas, le client GitHub ne reconnaît toujours pas le proxy: Le contenu du fichier TheLog.txt affiche toujours les informations suivantes 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 suivie par la sortie de plusieurs tentatives d’authentification proxy ayant échoué, qui indiquent toutes que «les informations d’identification sont manquantes».

Ajoutez ces entrées à votre fichier ‘.gitconfig’ dans votre répertoire utilisateur (allez à% USERPROFILE%):

 [http] proxy = http://: [https] proxy = https://: 

Et si vous ne souhaitez pas stocker votre mot de passe en texte brut, j’utiliserais un redirecteur de 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 si votre mot de passe est en texte brut, ajoutez-les:

 [http] proxy = http://:@: [https] proxy = https://:@: 

J’ai essayé tout ce qui précède – et n’a pas réussi, la seule chose qui m’a aidé est CNTLM – http://cntlm.sourceforge.net/ .

Installez-le et exécutez cntlm -H, puis authentifiez-vous avec le proxy corp, modifiez le fichier cntlm.ini avec la sortie de cntlm, redémarrez le service Windows. Mettre à jour le fichier .gitconfig avec:

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

Maintenant, cntlm effectuera toutes les authentifications et vous pourrez utiliser GitHub (et Dropbox, btw) derrière le proxy corp. Au moins jusqu’à la prochaine modification du mot de passe 🙂

J’ai pu faire fonctionner GitHub Shell avec notre proxy d’entreprise. Je lance GitHub Shell et exécute la commande suivante:

 export http_proxy=http://:@:3128 

J’aimerais vraiment que l’interface graphique fonctionne aussi. Mais je ne veux pas définir la variable d’environnement global Windows contenant les informations d’identification de l’entreprise.

Étrangement, GitHub GUI Client est capable de se connecter à GitHub pour l’authentification des utilisateurs, mais le seul problème réside dans le clonage, le transfert et la diffusion de projets depuis et vers GitHub. Il semble que le problème concerne l’implémentation de git. J’ai été en mesure de configurer git pour qu’il soit exécuté via notre proxy sans mettre mes informations d’identification dans les parameters globaux de git et il demandait mes informations d’identification lors de l’exécution de requêtes d’extraction ou de transfert. Mais cela ne fonctionnait que dans Git Shell.

Si vous utilisez GitHub pour Windows dans une entreprise, il y a de fortes chances que vous soyez derrière un gros pare-feu / proxy d’entreprise. GitHub pour Windows ne dispose pas encore des parameters proxy dans son interface graphique pour la définition des options.

Pour configurer GitHub pour Windows afin qu’il utilise votre proxy d’entreprise, modifiez le fichier .gitconfig que vous trouverez généralement dans C: \ Users \ .gitconfig ou C: \ Documents & Settings \ .gitconfig.

Fermez GitHub pour Windows; Dans .gitconfig, ajoutez simplement

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

J’ai également rencontré ce problème et j’ai également essayé de le découvrir (démonté le client).

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

 private static void LogProxyServerConfiguration() { WebProxy defaultProxy = WebProxy.GetDefaultProxy(); ssortingng str = defaultProxy.Address != (Uri)null ? defaultProxy.Address.ToSsortingng() : "(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 && !ssortingng.IsNullOrWhiteSpace(credential.UserName)); } } catch (Exception ex) { StartupLogger.log.InfoException("Couldn't fetch creds for proxy", ex); } } 

Donc, ce bloc enregistre uniquement les informations de proxy configurées dans IE . Le message de journal semble n’avoir aucune incidence sur ce que nous avons configuré dans les fichiers de configuration ou les variables d’environnement.

Je ne connais pas votre pare-feu, mais mon campus utilise un proxy

utilisez-vous une git gui? EDIT : juste remarqué que vous utilisez le client github pour Windows

J’utilise tortoisegit et c’est très facile de définir le proxy. Faites un clic droit n’importe où, tortoisegit> network, activez le serveur proxy et définissez l’adresse du serveur, le nom d’utilisateur et le mot de passe. terminé

pour autant que je m’en souvienne, tortoisegit fonctionnera également avec github.

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

 git config --global http.proxy http://:@: git config --global https.proxy http://:@: 

Ici, dans mon collège, nous n’avons pas de nom d’utilisateur et de mot de passe, donc si notre adresse IP est 172.16.10.10 et le port 8080

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

PS -> Je recommanderais d’utiliser cette méthode pour définir le proxy car les choses se mettront en place comme vous en apprendrez davantage
La source

J’ai trouvé ce blog utile. Il décrit le proxy ntlmaps . C’est probablement moins sûr, mais a bien fonctionné. Je ne pouvais pas travailler avec cntlm.

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

 [http] proxy = http://: [https] proxy = https://: 

Deuxièmement, (et c’était la pièce manquante pour nous), vous devez configurer une exception sur le serveur proxy pour autoriser le trafic proxy non authentifié à *.github.com

Dans iPrism, cela ressemble à ceci: entrer la description de l'image ici

Le problème n’est pas tellement le proxy, mais l’ authentification . Le contournement de l’exigence d’authentification permet à la communication nécessaire de cloner et de travailler avec des projets à l’aide du client de bureau GitHub.

Notez également que cette approche ne nécessitait pas le stockage des informations d’identification du proxy dans le fichier .gitconfig .