LINUX.ORG.RU
решено ФорумAdmin

git + http base authentication

 , , ,


0

1

На работе собственный git сервер. Работает только по https, ssh выключен. Коммиты делал через консольный git тоже через https. Все было хорошо, пока на уровне нашей сети не добавили авторизацию.

Теперь, чтобы в браузере открыть git нужно ввести пароль, чтобы страничка вообще показалось, потом данные своего аккаунта на gitea. Настроили это через keenetic, роутер. Из-за этого сейчас не работает консольный git.

Что работает?

wget --user=user --password=password url

Позволяет войти в сеть и скачать указанный url, где user и password - данные для входа в сеть. Нейросеть сказала мне, что раз этот wget работает, то это вход на уровне HTTP Base Authentication.

git clone url

Если ввести данные от сети, то можно склонировать репозиторий. (То есть git все-таки может авторизоваться)

Что не работает

git push url

Не работает вообще никак. И при ввода данных от сети, и при вводе данных от аккаунта gitea. Консольный git не проводит диалог, где спросил данные для входа в сеть и на git сервер. Он спрашивает данные только один раз, а нужно два.

Что пробовал?

git config --global credential.helper store

Сохранение данных для аутентификации - не помогло.

git push https://USERNAME:PASSWORD@git-url
git push https://USERNAME:TOKEN@git-url
git push https://TOKEN@git-url

Ничего не помогло. Какая есть опция, чтобы git одновременно авторизовался и на протоколе https и на самом сервере?

Пожалуйста, помогите, если не отправлю коммит в ближайшее время, то меня УВОЛЯТ!!!



Последнее исправление: jumminy1968 (всего исправлений: 1)

Обратный прокси на своей машине разверни и пусть он той стороне представляется по basic auth, а тебе отдает контент без авторизации 😜

Трешанина, канеш, а чо делать..

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от areful

Сам вперые вижу. Настроили через роутер.

В браузере при любом обращении к внутренним ресурсам требуется указать эти данные для доступа к сети. Если работать через wget, то нужно указать аргументы –user и –password, и тогда он корректно работает.

Нейросеть сказала, что раз такая команда wget работает, то это HTTP Authentication, которая в самом протоколе HTTP.

Роутер типо все митмит и обрабатывает

jumminy1968
() автор топика

Ты - единственный сотрудник, делающий коммиты в конторе, которая использует для доступа «keenetic, роутер»? Может, оно и неплохо что уволят?

anonymous
()

Гм. А что-нибудь из этого не пробовал?

Если понять что за ошибка, то и решение искать проще.

если git работает с https через curl, то там наверняка есть способы указать, что для прокси свои параметры аутентификации, а для сервера свои.

vel ★★★★★
()

Он спрашивает данные только один раз, а нужно два.

Поищи настройку, отвечающую за время хранения учётных данных после успешной авторизации

grem ★★★★★
()
Ответ на: комментарий от grem

Сделали ssh. Про увольнение я пошутил, чтобы вам весело было.

Вообще, мне было просто любопытно, как это работает. Я мог клонировать репозитории, значит гит умеет в http auth, в этом и весь феномен. Умеет и авторизоваться на самом сервере git. А вот как это одновременно сделать - я не нашел, но и уже ладно

jumminy1968
() автор топика