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

Git через прокси. Что вызывает ошибку 407 при клонировании?

Я пытаюсь использовать Git через прокси. Я попытался установить параметры "git config -global" многими способами, но всегда безуспешно при клонировании репозиториев.

Я сделал:

git config --global http.proxy http://DOMAIN\\\username:[email protected]:8080
git config --global http.sslverify false
git clone http://github.com/project/project.git

И я получил:

$ git clone http://github.com/project/project.git folder
Cloning into 'folder'...
error: The requested URL returned error: 407 while accessing http://github.com/project/project.git/info/refs
fatal: HTTP request failed

Итак, как я могу отладить это или включить ведение журнала в Git, чтобы узнать, почему я все еще получаю ошибку 407? Есть ли какой-либо параметр в Git, чтобы подробно показать, что происходит, чтобы поймать правильную точку, где происходит ошибка?

4b9b3361

Ответ 1

Вы можете включить ведение журнала трассировки, чтобы получить больше информации о том, что делает Git. Ниже приведен пример:

GIT_TRACE=$HOME/trace.log git co master

Вы должны использовать абсолютные пути, если вы хотите отправить вывод в файл. В противном случае используйте true или 1 для отправки вывода в стандартную ошибку; например GIT_TRACE=1.

Ответ 2

У меня была аналогичная проблема с попыткой git push от клиента Git Bash в Windows.

Я исправил его только с помощью просмотра на сайте с помощью Chrome.
Затем я вернулся к Git Bash, и он сразу сработал

Для ясности мой URL-адрес репозитория Git выглядит как http://[email protected]/myproject.git
И я просмотрел http://www.cloudforge.com

Я понимаю, что он заставляет прокси-сервер разрешать этот домен.

Ответ 4

Следующее решение проблемы для меня

  • Rightclick в папке git- > TortoiseGit- > Настройки- > Сеть
  • Включить прокси-сервер и входной прокси, порт, пользователь, пароль

Ответ 5

Эта ошибка может возникнуть, если указаны учетные данные прокси-сервера, но недействительны. В моем случае это был старый пароль.

Ответ 6

Я скопировал раздел http proxy моего .gitconfig в https:

[http]
        proxy = http://user:[email protected]_or_host:port
[https]
        proxy = http://user:[email protected]_or_host:port

Я установил неверный пароль в прокси-сервере http только для проверки, и он был проигнорирован, поэтому для него отсутствовал раздел https.

Странно, в другой день это не сработало. Я не знаю, схожу ли я с ума, или если еще один шаг я забыл. В сегодняшнем случае этот метод настройки прокси работал (с очищенным .gitconfig) из командной строки:

HTTPS_PROXY="http://user:[email protected]_or_host:port/" git clone --progress -v "https://github.com/repo" local_folder

Примечания:

  • Если вы находитесь в домене, вам может понадобиться использовать синтаксис DOMAIN\user.
  • Это не работало для TortoiseGit, но работало в gitbash в Windows.

Ответ 7

Ваш прокси-сервер также может быть установлен как переменная среды. Убедитесь, что в вашей среде есть какие-либо из env-переменных http_proxy или https_proxy, настроенных и отключенных.

Использование командной строки

# Linux
export http://user:[email protected]_or_host:port
export http://user:[email protected]_or_host:port

# Windows
set HTTP_PROXY = http://user:[email protected]_or_host:port 
set HTTPS_PROXY = http://user:[email protected]_or_host:port

изменить вручную

  • Щелкните правой кнопкой мыши на моем компьютере.
  • выберите свойства
  • расширенные системные настройки advanced- > системные переменные → add

Ответ 8

Если вы находитесь внутри корпоративного брандмауэра и используете окна git bash, то:

Откройте глобальный файл gitconfig, обычно это будет находиться под C:\Users\USER_NAME.gitconfig и добавьте ниже строки, если они не существуют.

[http]
proxy = http://USER_NAME:[email protected]_URL:PROXY_PORT
sslverify = false
[https]
proxy = http://USER_NAME:[email protected]_URL:PROXY_PORT
sslverify = false

Убедитесь, что ваш пароль не имеет символа "@". Если у вас все еще есть проблема, и вместо этого вы используете URL-адрес прокси-сервера, выполните следующие действия: Откройте команду "Windows Key + R" и введите cmd, а затем нажмите enter. выполните команду:

nslookup PROXY_URL

Это даст некоторые IP-адреса. Попробуйте эти IP-адреса в .giconfig вместо PROXY_URL.

Ответ 9

Это работает для пользователей домена и за прокси с проверкой подлинности и HTTPS. Используйте следующее, если вместо "\" используется% 5c. то есть. DOMAIN% 5cusername @прокси: порт

Откройте GIT config в редакторе:

git config --global e 

Добавить/обновить следующие разделы и сохранить:

[http]
    proxy = http://domain%5cusername:[email protected]:port
    sslVerify = false
[https]
    proxy = http://domain%5cusername:[email protected]proxy:port
    sslVerify = false

Ответ 10

Обратите внимание, что для любого Git между 2.8 (февраль 2016, через пять лет после вопроса OP) и Git 2.13 (Q2 2017) некорректная прокси-конфигурация будет игнорироваться (даже не 407)

См. commit ae51d91, commit 5741508 ( 11 апреля 2017 года) Сергей Рязанов (acteek).
Помог: Джефф Кинг (peff).
(Слияние Junio ​​C Hamano - gitster - в совершить 6b51cb6, 24 апреля 2017 года)

http: исправить молчание игнорирования неправильной настройки прокси-сервера

Раньше вся строка опций http.proxy передавалась curl без любая предварительная обработка, поэтому curl может жаловаться на недопустимый прокси-сервер конфигурации.

После совершить 372370f ( "http: использовать API учетных данных для обработки прокси-сервера аутентификация", 2016-01-26), если пользователь указал неверный протокол HTTP proxy в конфигурации, затем синтаксический разбор параметров сбой и NULL будет передан в curl в качестве прокси-сервера.
Это заставляет curl возвращаться к обнаружению конфигурации прокси-сервера из среды, вызывая игнорирование опции http.proxy.

Исправить эту проблему, проверив результат анализа синтаксиса прокси. Если разбор не удалось распечатать сообщение об ошибке и умереть.
Такое поведение позволяет чтобы быстро определить неправильную конфигурацию прокси-сервера и исправить ее.