Использование Git в Windows, за HTTP-прокси, без сохранения пароля прокси на диске

Я использую Git на Windows, в корпоративной сети, где я нахожусь за HTTP-прокси с обычной аутентификацией. Исходящий SSH не работает, поэтому я должен использовать HTTPS через прокси.

Я знаю, как использовать git config http.proxy настроить параметры как http://[username]:[password]@[proxy]:[port],

Тем не менее, тем более что это общий компьютер, я бы не хотел хранить свой пароль в моем .gitconfig, Дополнительно меняю .gitconfig с использованием git config Команда оставляет мой пароль в моей истории Bash, поэтому, даже если я не забуду очистить мой .gitconfig в конце сессии я почти наверняка забуду очистить свою историю.

Я пытался установить http.proxy без пароля, напрасно надеясь, что я получу приглашение, запрашивающее мой пароль, когда я попытаюсь нажать / вытащить, но я получу только 407 Proxy Authentication Required. Вся информация, которую я нашел в Интернете, похоже, игнорирует проблемы с сохранением пароля в виде открытого текста в .gitconfigили имеет дело с прокси NTLM.

Я очень рад вводить данные прокси-сервера каждый раз, когда мне нужно подключиться - лучшее решение, которое я вижу на данный момент, - это сценарий-обертка, который запрашивает мой пароль и устанавливает его в качестве переменной среды при вызове git собственно. Это достойное решение, и есть ли какие-либо последствия для безопасности для установки переменной среды для одного вызова в скрипте? Желательно ли какие-либо встроенные настройки или существующие инструменты, которые я могу использовать для этого?

5 ответов

Решение

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

set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
set no_proxy=localhost,.my.company 

Таким образом, ваш скрипт-обертка может, вместо того, чтобы изменять .gitconfig (и оставив ваш пароль в виде простого текста) установите переменные среды по требованию, только для вашего текущего сеанса.

Начиная с мерзавца 2.8.0

git config --global http.proxy http://[user]@proxyhost:port
git config --global credential.helper wincred

Ответ VonC не всегда решает проблему. Я не знаю почему, но это может зависеть от прокси-сервера - или, может быть, это совсем другая проблема?

Это может помочь заменить git:// протокол хранилища с http://,

Примечание. Как и в ответе VonC, вам необходимо настроить http(s)_proxy Сначала переменные среды:

set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port

Например, стабильный мерзавец клона мрамора обычно клонируется следующим образом (из документации по мрамору):

git clone -b Applications / 15.12 git: //anongit.kde.org/marble ~ / marble / sources

В окнах cmd (при условии, http_proxy был установлен), возможно, вам придется использовать http[s]:// вместо:

git clone -b Applications/15.12 http://anongit.kde.org/marble ~/marble/sources

Я знаю, что это старый пост, но подумал, что должен добавить примечание. В Windows 10 я выполнил указанную выше команду в git bash как «git config --global https.proxy http://[userid]:[passwordWithSpclChars]@url:port»… но поскольку мои учетные данные содержат специальные символы, я затем пришлось отредактировать файл конфигурации C:\USERS<userid>.gitconfig, чтобы URL-адрес кодировал специальные символы в моих учетных данных. Затем я смог продолжить работу с git fetch from origin.

Если вы находитесь за прокси-сервером, следуйте этому.

Убедитесь, что порт 9418 исключен из правил брандмауэра. Обратитесь к сетевому администратору.

Сбросить прокси, если он уже установлен:

  • git config --global --unset http.proxy
  • git config --global --unset https.proxy

Установите правильный прокси:

Распространенные ошибки:

  • 502: URL / IP недоступен из вашей сети.
  • 407: проверка подлинности прокси запрещена.
  • 80: Прокси не был настроен правильно.
Другие вопросы по тегам