Git windows настройка прокси

Использование git за прокси с аутентификацией

Достаточно часто я оказываютсь в ситуации, когда нужно обратиться к git-репозитарию, находясь за корпоративным файерволом, да еще и с аутентифицирующим прокси.
Бинарный протокол git закрыт наглухо, но, теоретически, есть возможность работать через http. Теоретически, потому что если прокси требует аутентификации — то git полностью отказывается с ним работать, по крайней мере под Windows.
Выход — пустить git через локальный прокси, который будет аутентифицироваться на upstream сам. Для этих целей будем использовать небезызвестный privoxy.

В примере используется допущение, что вы хотите получить доступ к github.com. Доступ будет настроен только к нему, ни к чему больше.
Еще одно допущение — ваш прокси поддерживает базовую (Basic) аутентификацию по http протоколу. Если же включена только NTLM аутентификация, то вместо privoxy потребуется установка cntlm. Этот случай мы не рассматриваем, но там все еще проще.

Шаги:

  1. Ставим себе на машину privoxy. Мой файервол запрещает доступ к privoxy.org, ваш, возможно, тоже. Качаем отсюда
  2. Ставить лучше portable версию, незачем мозолить глаза админам новыми записями в списке установленных программ.
  3. Правим config.txt, добавляем строчку
    forward github.com :
  4. В config.txt добавляем еще строчку
    debug 8 # Вывод информации о HTTP заголовках
  5. Запускаем браузер, ставим в качестве прокси localhost:8118
  6. Заходим на github.com, авторизуемся на прокси, выходим из браузера
  7. Ищем в логах privoxy строчку вида
    Jun 14 18:05:55.577 000017dc Header: scan: Proxy-Authorization: Basic gzMzAcG06T2lkb387XBsZX3gzMzAc2lkJlZG06T=
    Копируем ваш токен в сухое темное место.
  8. Добавляем в user.action строку:
    <+add-header>
    .github.com

Естественно, заменяем токен на ваш.

  • Удаляем из config.txt строку
    debug 8
  • С прокси все, осталось малое — настроить git.
    git config —global http.proxy http: //localhost:8118/
    Пробел только уберите после http:, пришлось добавить, т.к. парсер в ссылку превращает.
  • Вот и все, теперь git сможет работать через аутентифицирующий прокси. Правда, только по протоколу http.

    В качестве бонуса: вы теперь можете вообще забыть о том, что ваш прокси требует ввода пароля, если везде будете пользоваться локальным прокси, а не корпоративным.
    Все, что надо сделать — заменить в user.action строку «.github.com» на «/».

    Приятных вам коммитов!

    Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

    Git windows настройка прокси

    11611 просмотра

    3 ответа

    Новое в работе с git в Windows. Я скачал приложение GitHub Desktop и могу подключить свою учетную запись, но выполнить толкание / вытягивание не удается из-за неразрешенного хоста. Обсуждая на рабочем месте, я получил следующее предложение ввести эту команду в оболочку git.

    Является ли это:

    1. Сохранить мой пароль в виде простого текста?
    2. Отправить мой пароль в виде простого текста?

    Разве GitHub for Desktop не генерирует и не использует ключи SSH (я получил уведомление по электронной почте, когда я впервые подключил свою учетную запись)? Как я могу настроить GitHub Desktop для работы с этим прокси?

    Ответы (3)

    14 плюса

    Поэтому на самом деле решением было ввести эту команду в оболочку git.

    Автор: raphael Размещён: 06.10.2016 06:12

    14 плюса

    Чтобы напрямую добавить прокси-сервер в Github Desktop без использования оболочки git:

    Настройте / войдите в свою учетную запись в Github Desktop (это не будет проблемой, только прокси не позволяет вам добавлять, создавать или клонировать репо)

    Закройте Github Desktop на время (для настройки прокси).

    Перейти к C:\Users\@yourusername .

    Там вы найдете файл с именем .gitconfig

    Откройте его в любом текстовом редакторе (я использовал возвышенный текст 3) и добавьте

    [http] proxy = http://username:password@your.proxy.address:8080

    1. Теперь вы можете добавлять, создавать и клонировать репозитории в Github Desktop.

    Примечание (для пользователей TFS): TFS выдаст ошибку 502 неверного шлюза при использовании вышеуказанной конфигурации прокси. Используйте hash #, чтобы закомментировать конфигурацию прокси в .gitconfig для переключения между Git и TFS.

    0 плюса

    Это может работать с этим:

    • git config —global http.proxy proxy_address: proxy_port
    • git config —global https.proxy proxy_address: proxy_port

    Если имя пользователя и пароль не так важны, используйте:

    Настройка Git на Windows для использования NTLM прокси-аутентификации

    Я пытаюсь получить доступ к репозиторию на Github с машины Windows, которая находится за прокси-сервером, требующим аутентификации NTLM. Ни SSH, ни протокол git:// не доступны напрямую, поэтому я пытаюсь заставить это работать с HTTPS через прокси.

    С помощью NTLM прокси без пароля? Я смог заставить двоичный файл curl , поставляемый с msysgit, хорошо играть с прокси-сервером:

    Это успешно и возвращает домашнюю страницу Github.

    Однако я нашел статью От февраля 2010 года Proxying Git, в которой говорится (Курсив мой):

    К сожалению, похоже, что curl всегда будет использовать базовую аутентификацию с прокси-сервером. Если вашему прокси нужно что-то еще, возможно, NTLM для сети Windows, то у вас есть проблема . Curl используется для обработки всех транспортных деталей http, и это действительно поддерживает метод аутентификации NTLM, но я не знаю никакого способа передать необходимые параметры в curl. Git использует curl через свою библиотечную привязку, поэтому недостаточно просто заменить исполняемый файл curl сценарием-оболочкой.

    Я знаю о опции core.gitproxy в конфигурации Git, но это, по-видимому, применимо только к протоколу git://. Аналогично, параметр http.proxy задает адрес прокси-сервера, но не предоставляет возможности предоставить соответствующие параметры curl.

    5 ответов

    Я знаю, как настроить basicHttpBinding для аутентификации NTLM, но не могу найти способ сделать то же самое для netTcpBinding. Поддерживает ли netTcpBinding NTLM? Если да, то как заставить службу WCF использовать NTLM? BTW хорошо известный метод, использующий элемент идентичности, по какой-то.

    Я стою за аутентифицирующим прокси-сервером и должен получить доступ к удаленному РЕПО SVN через https, используя git svn . Прокси-сервер определен в моем файле

    /.subversion/servers . Когда я начинаю с git svn fetch , я получаю сообщение об ошибке: RA запрос слоя не удался: OPTIONS из ‘.

    Попробуйте Cntlm . Это прокси, предназначенный для того, чтобы сидеть между программой, которая не понимает NTLM (например, Git), и прокси, который требует NTLM. Он выполняет аутентификацию NTLM, так что приложению это не нужно.

    Я не использовал его, поэтому не знаю, насколько хорошо он работает.

    Я использовал прокси-сервер аутентификации CNTLM (хотя это, скорее всего, также будет работать для ntlmaps), чтобы git мог работать, и добавил прокси-серверы http и https как http:// localhost:3218 . Git займет очень много времени, чтобы выполнить любое удаленное действие, такое как fetch, pull или clone.

    Исправление для этого состояло в том, чтобы переключиться на использование этого вместо этого: http:// 127.0.0.1:3218

    После того, как это было изменено в .gitconfig, он работал намного быстрее.

    NB: удалите пробелы между http:// и 127.0.0.1

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

    Спасибо за @richard-hansen за то, что указал на Cntlm. Он предоставляет не windows адаптер для windows прокси. Очень аккуратно.

    Вот точные шаги, которые сработали для меня:

    1. Загрузите и установите Cntlm для windows.
    2. Откройте Cntlm.ini (он находится в папке установки.)
    3. Обновите имя пользователя, домен. Сохрани его.
    4. Запустите cntlm -I -M http://google.com из командной строки.
    5. Cntlm запросит пароль, который вы будете использовать для прокси-сервера. Отдай. (Скорее всего, это ваш пароль windows)
    6. Cntlm идентифицирует метод аутентификации и генерирует ключ. Возьмите этот результат. (например, NTLMv2 77B9081511704EE852F94227CF48A793)
    7. Обновите Cntlm.ini с этой информацией. (Раскомментируйте соответствующую аутентификацию и обновите ключ)
    8. Сохранить и закрыть.
    9. Теперь вам нужно запустить прокси-сервер Cntlm. net start cntlm
    10. Теперь обновите приложение с помощью cntlm proxy info. Для Cntlm это 127.0.0.1:3128 (эта информация находится в файле ini. Если вы хотите, чтобы он был другим, измените его там). В случае git git config —global http.proxy 127.0.0.1:3128
    11. git теперь должен нормально работать через прокси-сервер.

    Удачи! Тщательно продуманные шаги здесь .

    Я использую curl уже некоторое время, и он работает нормально, но с прокси-сервером, который использует пользователей domain\username для аутентификации curl, не запрашивает авторизацию. Метод авторизации-NTLM. Этот код идет в batch file. Код: curl —proxy-ntlm —proxy-user : —proxy %PROXY_URL%.

    Я видел здесь много вопросов, охватывающих git и прокси-темы, но ни один из них не решает мою проблему. Я клонирую репозиторий git из Bitbucket. Все работает нормально из моей домашней сети, но зависает на работе, где мы используем прокси с аутентификацией NTLM. Смотрите вывод команды git clone .

    С mysysgit 1.9.5 (или, возможно, более ранние версии тоже, но непроверенные) вы можете сделать это без встраивания имени пользователя и пароля в обычный текстовый конфигурационный файл на диске.

    И для этого не требуется cntlm.

    Опция http.proxy отлично работает для NTLM прокси на windows, проверьте мой следующий ответ в аналогичном вопросе:

    Похожие вопросы:

    Это, как правило, считаются безопасными для использования проверки подлинности NTLM для Windows Sharepoint 2010 на сервере Windows 2008 Р2? Эта установка Sharepoint будет доступна в Интернете.

    У меня есть программа VB6, работающая на сервере Windows Server 2003 (32-разрядная версия), которая использует объект Microsoft ServerXMLHTTP для подключения HTTP к веб-службе с использованием.

    Как правильно аутентифицировать клиента Axis2 (версия 1.4) на прокси-сервере http, который требует аутентификации NTLM? Я использую следующий код для предоставления учетных данных прокси-сервера, но.

    Я знаю, как настроить basicHttpBinding для аутентификации NTLM, но не могу найти способ сделать то же самое для netTcpBinding. Поддерживает ли netTcpBinding NTLM? Если да, то как заставить службу.

    Я стою за аутентифицирующим прокси-сервером и должен получить доступ к удаленному РЕПО SVN через https, используя git svn . Прокси-сервер определен в моем файле

    /.subversion/servers . Когда я.

    Я использую curl уже некоторое время, и он работает нормально, но с прокси-сервером, который использует пользователей domain\username для аутентификации curl, не запрашивает авторизацию. Метод.

    Я видел здесь много вопросов, охватывающих git и прокси-темы, но ни один из них не решает мою проблему. Я клонирую репозиторий git из Bitbucket. Все работает нормально из моей домашней сети, но.

    Я хочу использовать git на работе через прокси -сервер на Windows 7 . У моей компании есть различные прокси-серверы. Чтобы пройти мимо прокси-сервера для использования Python pip, я использовал.

    Как и многие другие, я пытаюсь получить доступ к github.com из-за корпоративного прокси-сервера. Apparently* curl (через libcurl) теперь включает в себя поддержку GSSAPI для NTLM.

    Моя цель состоит в том, чтобы использовать клиентскую реализацию WebSocket .Net (т. е. не браузер) для подключения к WebSocket через корпоративный прокси-сервер, который требует аутентификации NTLM.

    Set proxy for Microsoft Git Provider in Visual Studio

    I have to use http proxy to connect to Git server. I am able to set it through Git Bash and use it too through the following command:

    However, I am using Microsoft Git Provider integration with Visual Studio. And I am not able to set proxy anywhere to connect to Git server. Is there a way that I can save the proxy details for Microsoft Git Provider in Visual Studio?

    4 Answers 4

    There is not a direct way to set a Git proxy in Visual Studio

    You don’t need to setup anything in Visual Studio in order to setup the Git proxy — in fact, I haven’t found any way to do so within Visual Studio directly, and the alternate answer on using devenv.exe.config I was not personally able to get to work.

    However, there is an easy solution

    Visual Studio will install Git for Windows as long as you have Git checkmarked during install (the latest versions have this by default). Once Git for Windows (or Git in general on any OS) is installed, you can easily setup the global Git proxy settings directly at any command line, console, or Powershell window.

    In fact, you can open a command or Powershell prompt directly in Visual Studio with Tools/NuGet Package Manager/Package Manager Console .

    If Git is installed, you can type git at any command line and you’ll get a list of all the git commands. If this does not happen, you can install Git for Windows directly — I would recommend doing that as a part of installing the Git Extensions GUI application, but your mileage may vary.

    The git commands in particular you need are:

    • The proxy address likely is http:// and not https://
    • USER:PASSWORD@ is the user name and password if required for your proxy
    • URL is the full domain name of the proxy
    • PORT is the port of the proxy, and might be different for http and https

    This will setup your proxy in a global config file in your «MyDocuments» folder. The file might be named differently or place somewhere else depending on your OS and other factors. You can always view this file and edit the sections and key/value pairs directly with the following command:

    This will open up the global config in the current editor setup in Git, or possibly the system default text editor. You can also see the config file for any given repo by being in the repo directory and leaving off the —global flag.

    After setting up the proxy, you should see something like the following as a part of the file:

    You can enter these values directly rather than using the config commands, or can delete them to remove the proxy from the config.

    Note: This file is also where the user.name and user.email that are used for commits is stored — see the [user] section.

    Other useful Git configs for proxy

    1. You can also leave off the —global or replace it with —local if you want to setup the proxy for the current local repo (you must be in the repo directory when issuing the command).

    2. In addition, you can setup a proxy for just a specific URL as follows:

    Note that the full URL should be used (i.e. http:// or https:// in the front).

    3. In addition, if you ever have multiple remote repos, say origin and upstream , which need different proxies, you can set a proxy for one specifically.

    4. You can set the proxy to null by substituting «» for the proxy URL. This may be useful if, for example, you want to set the proxy globally, but then exclude a specific URL which is behind your company firewall (such as an enterprise, on premises version of Github), and the proxy doesn’t handle local addresses correctly. This may also be helpful with localhost and other special addresses or direct IP addresses.

    5. You can check what the proxy is for a given URL with the following:

    Читайте также:  Герб россии для windows
    Оцените статью