curl
вроде работает нормально, но git
не. git
запрашивает пароль, но не отправляет никаких учетных данных.
Работает: curl --netrc http://test.git.unsw.edu.au/
и curl -u username:password http://test.git.unsw.edu.au/
Не работает: git remote update
Password for 'http://username@test.git.unsw.edu.au':
* Couldn't find host test.git.unsw.edu.au in the .netrc file; using defaults
User-Agent: git/1.7.9.5
Host: test.git.unsw.edu.au
Accept: */*
Pragma: no-cache
Почему нет git
отправка учетных данных?
Со стороны я вижу:
.netrc
GET /repo/info/refs?service=git-receive-pack HTTP/1.1
- нет учетных данныхHTTP/1.0 401 Unauthorized
.netrc
GET /repo/info/refs?service=git-receive-pack HTTP/1.0
- нет учетных данныхHTTP/1.0 401 Unauthorized
.netrc
* Couldn't find host test.git.unsw.edu.au in the .netrc file; using defaults
GET /repo/info/refs?service=git-receive-pack HTTP/1.1
- нет учетных данныхHTTP/1.0 401 Unauthorized
Кажется, что Git использует только CURLAUTH_ANY
который не работает с моим конкретным веб-сервером. Мой веб-сервер поддерживает Negotiate
и Basic
, поэтому Git не возвращается к Basic
когда Negotiate
не доступен на клиенте.
Кроме того, похоже, что у Git нет возможности использовать что-либо, кроме CURLAUTH_ANY
.
Глядя на страницу руководства, кажется, что git не принимает параметр имени пользователя при использовании с http. Но если вы поместите его в свой файл .netrc, curl должен его использовать. Формат для .netrc:
machine hostname login yourusername password yourpassword