Подтвердить что ты не робот

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

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

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

curl -U : --proxy-ntlm --proxy xxx.xxx.xx.xx:8080 https://github.com

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

После этого в файле .gitconfig он работал намного быстрее.

Примечание. Удалите пробелы между http://и 127.0.0.1

Пример:

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

Ответ 3

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

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

  • Загрузите и установите Cntlm для окон.
  • Откройте Cntlm.ini(он находится в папке установки.)
  • Обновить имя пользователя, домен. Сохраните его.
  • Запустите cntlm -I -M http://google.com из командной строки.
  • Cntlm спросит пароль, который вы будете использовать для прокси-сервера. Дай это. (Скорее всего, это ваш пароль для Windows)
  • Cntlm идентифицирует метод аутентификации и генерирует ключ. Возьмите этот результат. (например, NTLMv2 77B9081511704EE852F94227CF48A793)
  • Обновите Cntlm.ini с помощью этой информации. (Раскомментируйте соответствующую проверку подлинности и обновите ключ)
  • Сохранить и закрыть.
  • Теперь вам нужно запустить прокси-сервер Cntlm. net start cntlm
  • Теперь обновите приложение с помощью информации прокси-сервера Cntlm. Для Cntlm это 127.0.0.1:3128 (Эта информация находится в файле ini. Если вы хотите, чтобы это изменило ее там). В случае git git config --global http.proxy 127.0.0.1:3128
  • git теперь должен работать нормально через прокси.

Удачи! Разработайте шаги здесь.