Клиент 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.proxy varaible в глобальный конфигурационный файл


во всех случаях, 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


и сопровождается выводом нескольких неудачных попыток проверки подлинности прокси, все из которых указывают "учетные данные отсутствуют."

904   9  

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:8080

P. S - > Я бы рекомендовал использовать этот метод, чтобы установить прокси, как все встанет на свои места, как вы узнаете дальше
источник

нашел этот блог чтобы быть полезным. Он описывает ntlmaps прокси. Это, вероятно, менее безопасно, но работает гладко. Я не мог заставить cntlm работать.

для нас решение включало две разные вещи. Во-первых, как описано в ответе Sogger, вам нужно добавить записи в свой , расположенном в %USERPROFILE%.

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

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

во-вторых, (и это была недостающая часть для нас,) вам нужно настроить исключение на прокси-сервере, чтобы разрешить неидентифицированных прокси-трафик *.github.com

в iPrism, это выглядит так: enter image description here

проблема это не столько прокси, сколько проверка подлинности. Обход требования аутентификации позволяет клонировать необходимую связь и работать с проектами с помощью настольного клиента GitHub.

также обратите внимание, что этот подход не требуется хранить учетные данные прокси-сервера на .

Comments

    Ничего не найдено.