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 valeurhttp://[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
(noS
) - 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."
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>
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)
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.
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
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.
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.
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
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:
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
.