Я пытаюсь заставить работать клиент GitHub для Windows. Я нахожусь на корпоративном компьютере Win 7 x64 за корпоративным прокси-сервером и межсетевым экраном. Следя за различными другими сообщениями и экспериментируя с несколькими комбинациями переменных среды и переменных конфигурации, я обнаружил, что единственный способ заставить клонирование и запуск обновлений работать - это использовать переменную среды HTTPS_PROXY, включая мой полный идентификатор пользователя и пароль корпоративного домена.
Это недопустимо с точки зрения безопасности. Есть ли другой способ заставить это работать?
Дополнительные примечания:
Сработало следующее:
- Добавьте переменную среды, называемую
HTTPS_PROXY
со значениемhttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080
Следующее не помогло:
- Пропуск идентификатора пользователя и пароля из
HTTPS_PROXY
переменной - Использование переменной среды с именем
HTTP_PROXY
(noS
) - Добавление
http.proxy
переменной в глобальный файл конфигурации (.gitconfig
) - Добавление
https.proxy
переменной в глобальный файл конфигурации
Во всех случаях клиент 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
За ним следует вывод нескольких неудачных попыток аутентификации прокси-сервера, каждая из которых указывает, что «Учетные данные отсутствуют».
источник
Ответы:
Добавьте эти записи в свой файл .gitconfig в каталоге пользователя (перейдите в% USERPROFILE%):
И если вы не хотите хранить свой пароль в виде открытого текста, я бы использовал локальный прокси-сервер пересылки, например CNTLM, который позволяет вам направлять весь трафик через него и может хранить хешированные пароли.
В отличие от исходного вопроса, если вам все равно, что ваш пароль в виде обычного текста, добавьте следующее:
источник
127.0.0.1
вместоlocalhost
, как предлагается. В Windows кажется, что localhost сначала указывает на адрес IPv6, который CNTLM не прослушивает. Таким образом, git будет ждать до истечения времени ожидания (несколько минут) перед переключением на IPv4-адрес.Пробовал все вышеперечисленное - и ничего не вышло, единственное, что мне помогло, это CNTLM - http://cntlm.sourceforge.net/ .
Установите его и запустите cntlm -H, затем выполните аутентификацию на корпоративном прокси, отредактируйте файл cntlm.ini с помощью вывода cntlm, перезапустите службу Windows. Обновите .gitconfig:
Теперь cntlm выполнит всю аутентификацию, и вы сможете использовать GitHub (и Dropbox, кстати) за корпоративным прокси. По крайней мере, до следующей смены пароля :) (чем снова делать cntlm -H)
источник
Мне удалось заставить GitHub Shell работать с нашим корпоративным прокси. Я запускаю GitHub Shell и выполняю следующую команду:
Мне бы очень хотелось, чтобы GUI тоже работал. Но я не хочу устанавливать глобальную переменную среды Windows, которая содержит мои корпоративные учетные данные.
Как ни странно, клиент GUI GitHub может подключаться к GitHub для аутентификации пользователя, но проблема связана только с клонированием, извлечением и отправкой проектов из GitHub и в него. Похоже, проблема в реализации git. Мне удалось настроить git для работы через наш прокси, не помещая свои учетные данные в глобальные настройки git, и он запрашивал мои учетные данные при выполнении запросов на вытягивание или push. Но это работало только в Git Shell.
источник
Если вы используете GitHub для Windows на предприятии, велика вероятность, что вы находитесь за большим плохим корпоративным брандмауэром / прокси. GitHub для Windows еще не имеет параметров прокси в своем графическом интерфейсе для настройки параметров.
Чтобы настроить GitHub для Windows на использование корпоративного прокси-сервера, отредактируйте файл .gitconfig, который обычно находится в C: \ Users \ .gitconfig или C: \ Documents & Settings \ .gitconfig.
Закройте GitHub для Windows; В .gitconfig просто добавьте
[https] proxy = proxy.yourcompany.com:port
источник
Я тоже столкнулся с этой проблемой, и тоже попытался немного покопаться (разобрал клиент).
Фрагмент кода, который генерирует сообщения журнала, которые мы видим, выглядит следующим образом:
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
Здесь, в моем колледже, у нас нет имени пользователя и пароля, поэтому, если наш IP-адрес колледжа - 172.16.10.10, а порт - 8080
PS -> Я бы рекомендовал использовать этот метод для установки прокси, поскольку все встанет на свои места, когда вы узнаете далее
Источник
источник
Я нашел этот блог полезным. Он описывает прокси ntlmaps . Вероятно, это менее безопасно, но работает плавно. Я не мог заставить cntlm работать.
источник
Для нас решение заключалось в двух разных вещах. Во-первых, как описано в ответе Соггера, вам нужно добавить записи в свой
.gitconfig
файл, расположенный в%USERPROFILE%
.Во-вторых, (и это было недостающее звено для нас) вам нужно настроить исключение на прокси-сервере, чтобы разрешить неаутентифицированный прокси-трафик для
*.github.com
В iPrism это выглядит так:
Проблема не столько в прокси, сколько в аутентификации . Пропуск требования аутентификации позволяет клонировать необходимое взаимодействие и работать с проектами с помощью настольного клиента GitHub.
Также обратите внимание, что этот подход не требовал хранения учетных данных прокси-сервера в
.gitconfig
файле.источник