Git не поддерживает аутентифицированные прокси-серверы. Вы можете проверить http.c
из репозитория git.git ; чтобы вообще поддерживать аутентифицированные прокси-серверы, необходимо установить CURL_PROXYUSERPWD
для установки имени пользователя и пароля, но эта строка не появляется в этом файле.
Одним из возможных решений было бы исправить Git; добавьте еще несколько параметров конфигурации к http.c
, таким как http.proxyuser
, http.proxypass
, чтобы установить имя пользователя и пароль для прокси, и http.proxyauth
, чтобы установить метод аутентификации, а затем передайте их как соответствующие опции конфигурации cURL .
Если вы не хотите взламывать исходный код Git, вы можете настроить свой собственный локальный прокси-сервер, который не требует аутентификации, и затем перенаправить его на прокси-сервер, требующий аутентификации. Squid поддерживает этот режим работы , хотя конфигурация может быть немного сложной; Я нашел пример конфигурации , которая предназначена для демонстрации этой настройки, хотя я не проверял, что она работает сама.
edit : Не берите в голову, после проверки исходного кода Squid , кажется, что он поддерживает только обычную аутентификацию, но не дайджест-аутентификацию, при пересылке запросов к пиру:
httpHeaderPutStrf(hdr_out, header, "Basic %s", base64_encode(orig_request->peer_login));
Я не нашел ни одного прокси-сервера, который мог бы передать запрос другому прокси с включенной дайджест-проверкой подлинности; если вы можете найти тот, который поддерживает дайджест-аутентификацию для прокси-сервера верхнего уровня, я бы порекомендовал использовать его.
В противном случае я бы рекомендовал использовать протокол, отличный от HTTP; используйте ssh:
, если вам нужна аутентификация, или необработанный протокол git:
, если вы просто извлекаете изменения с общедоступного сервера.