fragen stichworte

git weigert sich, Anmeldeinformationen über HTTP zu senden

curl scheint gut zu funktionieren, aber git funktioniert nicht. git fragt nach einem Kennwort, sendet jedoch keine Anmeldeinformationen.

Works: curl --netrc http://test.git.unsw.edu.au/ und curl -u username:password http://test.git.unsw.edu.au/

Funktioniert nicht: 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

Warum sendet git keine Anmeldeinformationen?

Aus einer Straße sehe ich:

  1. Lesen Sie .netrc
  2. GET/repo/info/refs?service=git-receive-pack HTTP/1.1 - keine Anmeldeinformationen
  3. HTTP/1.0 401 Unauthorized
  4. Lesen Sie .netrc
  5. GET/repo/info/refs?service=git-receive-pack HTTP/1.0 - keine Anmeldeinformationen
  6. HTTP/1.0 401 Unauthorized
  7. Aufforderung zur Eingabe eines Passworts
  8. Lesen Sie .netrc
  9. * Couldn't find host test.git.unsw.edu.au in the .netrc file; using defaults
  10. GET/repo/info/refs?service=git-receive-pack HTTP/1.1 - keine Anmeldeinformationen
  11. HTTP/1.0 401 Unauthorized

antworten

Wenn man sich die Manpage anschaut, scheint git bei Verwendung mit http nicht die Option username zu verwenden. Aber wenn Sie es in Ihre .netrc-Datei einfügen, sollte curl es verwenden. Das Format für .netrc ist

machine hostname login yourusername password yourpassword

Git scheint nur CURLAUTH_ANY zu verwenden, was nicht mit meinem Webserver funktioniert. Mein Webserver unterstützt Negotiate und Basic, so dass Git nicht auf Basic zurückgreift, wenn Negotiate auf dem Client nicht verfügbar ist.

Außerdem scheint es keine Möglichkeit für Git zu geben, etwas anderes als CURLAUTH_ANY zu verwenden.