git se recusa a enviar credenciais por HTTP

3

curl parece funcionar bem, mas git não funciona. git pede uma senha, mas não envia credenciais.

Funcionamento: curl --netrc http://test.git.unsw.edu.au/ e curl -u username:password http://test.git.unsw.edu.au/

Não funciona: git remote update

Password for 'http://[email protected]': 
* 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

Por que git não envia credenciais?

De uma faixa, vejo:

  1. Ler .netrc
  2. GET /repo/info/refs?service=git-receive-pack HTTP/1.1 - sem credenciais
  3. HTTP/1.0 401 Unauthorized
  4. Ler .netrc
  5. GET /repo/info/refs?service=git-receive-pack HTTP/1.0 - sem credenciais
  6. HTTP/1.0 401 Unauthorized
  7. Solicitar senha
  8. Ler .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 - sem credenciais
  11. HTTP/1.0 401 Unauthorized
por Jayen 20.07.2012 / 15:12

2 respostas

1

O Git parece usar apenas CURLAUTH_ANY , o que não funciona com o meu servidor web específico. Meu servidor da web suporta Negotiate e Basic , então o Git não faz fallback para Basic quando Negotiate não está disponível no cliente.

Além disso, parece não haver nenhuma opção para o Git usar algo diferente de CURLAUTH_ANY .

    
por 22.07.2012 / 03:07
1

Olhando para a manpage, parece que o git não usa a opção username quando usado com http. Mas se você colocá-lo em seu arquivo .netrc, o curl deve usá-lo. O formato para .netrc é

machine hostname login yourusername password yourpassword
    
por 20.07.2012 / 16:26