Клиент Windows GitHub за прокси
Я пытаюсь заставить клиент GitHub для Windows работать. Я нахожусь на корпоративном компьютере Win 7 x64 за корпоративным прокси и брандмауэром. После различных других сообщений и экспериментов с несколькими комбинациями переменных среды и переменных конфигурации я нашел единственный способ получить клонирование и нажать обновления для работы, используя переменную среды HTTPS_PROXY, включая мой полный идентификатор пользователя корпоративного домена и пароль.
это неприемлемо с точки зрения безопасности точка зрения. Есть ли другой способ заставить это работать?
дополнительная информация:
следующие работы:
- добавить переменную окружения с именем
HTTPS_PROXYсо значениемhttp://[domain][userid]:[password]@someproxy.mycorp.com:8080
следующий сделал не работы:
- опуская идентификатор пользователя и пароль от
HTTPS_PROXYпеременная - используя переменную окружения с именем
HTTP_PROXY(неS) - добавить
http.proxyпеременная в глобальный конфигурационный файл (.gitconfig) - добавлять
https.proxyvaraible в глобальный конфигурационный файл
во всех случаях, 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
и сопровождается выводом нескольких неудачных попыток проверки подлинности прокси, все из которых указывают "учетные данные отсутствуют."
9 ответов:
добавьте эти записи в свой '.файл 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>
пробовал все выше - и не удалось, единственное, что помогло мне это CNTLM -http://cntlm.sourceforge.net/.
установить и запустить cntlm -ч, чем проходить проверку подлинности на прокси-корп, редактирование cntlm.ini-файл с выводом cntlm, перезагрузите службу windows. Обновление.gitconfig с:
[https] proxy = localhost:3128 [http] proxy = localhost:3128теперь cntlm будет выполнять всю аутентификацию, и вы сможете использовать GitHub(и Dropbox, кстати) за прокси-сервером corp. По крайней мере, до следующей смены пароля :) (чем сделать cntlm-H вещи снова)
мне удалось сделать оболочку GitHub для работы с нашим корпоративным прокси. Я запускаю оболочку GitHub и выполняю следующую команду:
export http_proxy=http://<username>:<password>@<corporate proxy>:3128Я бы очень хотел, чтобы GUI тоже работал. Но я не хочу устанавливать глобальную переменную среды Windows, которая содержит мои корпоративные учетные данные.
странно GitHub GUI клиент может подключиться к GitHub для аутентификации пользователей, но только проблема с клонированием, потянув и толкая проекты из и в GitHub. Похоже, проблема заключается в реализации git. Я смог настроить git для запуска через наш прокси-сервер, не помещая свои учетные данные в глобальные настройки git, и он запрашивал мои учетные данные при выполнении запросов pull или push. Но это работало только в Git Shell.
Если вы используете GitHub для Windows в корпоративной среде, высока вероятность того, что вы находитесь за большим плохим корпоративным брандмауэром/Прокси. GitHub для Windows еще не имеет параметров прокси в своем графическом интерфейсе для настройки параметров.
чтобы настроить GitHub для Windows для использования вашего корпоративного прокси, отредактируйте .файл gitconfig хранит настройки обычно в\C:\Users.gitconfig или C:\Documents & настройки\.gitconfig
закрыть GitHub для Windows; In .gitconfig, просто добавить
[https] прокси = прокси.ваша_компания.COM:порт
Я также столкнулся с этой проблемой, и попытался копаться в ней немного, а также (разобрал клиент).
фрагмент кода, который генерирует сообщения журнала, которые мы видим, выглядит следующим образом:
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. Сообщение журнала, похоже, не имеет никакого отношения к тому, что мы установили в файлах конфигурации или переменных среды.
Я не знаю о вашем брандмауэре, но мой кампус использует прокси
вы используете какой-либо Git gui? EDIT: только что заметил, что вы используете клиент github для windows
Я использую tortoisegit и его очень легко установить прокси. Просто щелкните правой кнопкой мыши в любом месте, tortoisegit>сеть, включите прокси-сервер и установите адрес сервера, имя пользователя и пароль. сделано
насколько я помню, tortoisegit также будет работать из коробки с github.
вот способ установить прокси в github
git config --global http.proxy http://<username>:<pass>@<ip>:<port> git config --global https.proxy http://<username>:<pass>@<ip>:<port>вот в моем колледже, у нас нет логина и пароля, так что если наш колледж ip - 172.16.10.10 и порт 8080
git config --global http.proxy http://172.16.10.10:8080 git config --global https.proxy http://172.16.10.10:8080P. S - > Я бы рекомендовал использовать этот метод, чтобы установить прокси, как все встанет на свои места, как вы узнаете дальше
источник
для нас решение включало две разные вещи. Во-первых, как описано в ответе Sogger, вам нужно добавить записи в свой , расположенном в
%USERPROFILE%.[http] proxy = http://<proxy address>:<proxy port> [https] proxy = https://<proxy address>:<proxy port>во-вторых, (и это была недостающая часть для нас,) вам нужно настроить исключение на прокси-сервере, чтобы разрешить неидентифицированных прокси-трафик
*.github.comпроблема это не столько прокси, сколько проверка подлинности. Обход требования аутентификации позволяет клонировать необходимую связь и работать с проектами с помощью настольного клиента GitHub.
также обратите внимание, что этот подход не требуется хранить учетные данные прокси-сервера на .

Comments