2010-01-18 18 views
18

Quiero hacer "git clone" a través de un servidor proxy. El problema es que mi servidor proxy usa autenticación resumida. Entonces no puedo encontrar ninguno en la documentación de git, ni ayudar a alguien que ya lo hizo.Git a través de la autenticación del proxy de resumen

Excavo a través de la búsqueda de google y no puedo encontrar ningún resultado útil.

Thxs.

Respuesta

20

sólo para ahorrar unos pocos momentos de googlear en respuesta de Bennet:

  1. ajustes antiguos claro:
    >git config --global --unset https.proxy
    >git config --global --unset http.proxy
  2. Establecimiento de nuevos ajustes:
    >git config --global https.proxy https://USER:[email protected]:80
    >git config --global http.proxy http://USER:[email protected]:80

  3. Verificar nueva configuración:
    >git config --get https.proxy
    >git config --get http.proxy

NOTA:. Al verificar, debería ver los mismos valores que se pone en

+0

+1 gracias por resolver mi problema irritante .. – suhailvs

1

Git no parece ser compatible con servidores proxy autenticados. Puede marcar http.c from the git.git repository; para admitir servidores proxy autenticados, tendría que establecer CURL_PROXYUSERPWD para establecer el nombre de usuario y la contraseña, pero esa cadena no aparece en ese archivo.

Una posible solución sería arreglar Git; agregue algunos parámetros de configuración más a http.c, como http.proxyuser, http.proxypass, para establecer el nombre de usuario y la contraseña para el proxy, y http.proxyauth para establecer el método de autenticación, y luego páselos como el cURL configuration options apropiado.

Si no tiene ganas de piratear el código fuente de Git, puede configurar su propio servidor proxy local, que no necesita autenticación, y luego reenviarlo al servidor proxy que requiere autenticación. Squid admite this mode of operation, aunque la configuración puede ser un poco compleja; Encontré an example configuration que pretende demostrar esta configuración, aunque no he verificado que funcione.

edición: No importa, después de comprobar el Squid source code, que parece apoyar sólo la autenticación básica, no autenticación de texto implícita, al reenviar solicitudes a un compañero:

httpHeaderPutStrf(hdr_out, header, "Basic %s", base64_encode(orig_request->peer_login)); 

no he encontrado cualquier poder servidores que pueden pasar una solicitud a otro proxy con la autenticación resumida habilitada; si puede encontrar uno que admita la autenticación de resumen para un proxy ascendente, le recomendaría usarlo.

De lo contrario, recomendaría utilizar un protocolo diferente de HTTP; use ssh: si necesita autenticación, o el protocolo raw git: si solo está bajando cambios desde un servidor público.

+0

¿Entonces me está diciendo que instale calamar como proxy local? Gracias por la ayuda. – erick2red

+0

Sí, recomiendo que configure Squid como un servidor proxy local (en la misma máquina en la que se ejecuta Git), sin autenticación, y que Squid se conecte a su servidor proxy que tiene autenticación. Luego simplemente configure Git para usar su Squid local como su servidor proxy. –

+0

Eres tú, mucho (tratando de alcanzar 15 caracteres). – erick2red

17

que era capaz de hacer un clon de git a través de un proxy autenticado mediante el establecimiento de la variable de entorno http_proxy a http://username:[email protected]:80

A continuación, una vieja llana git clone trabajó.

(El proxy es algo de Windows corporativo, por lo que mi nombre de usuario en realidad se parecía al dominio \ nombre de usuario. Tomó un tiempo darse cuenta de que necesitaba el dominio.)

+0

dulce - funcionó un regalo para mí. Gracias por resolver este problema de larga data para mí :) – cristobalito

+0

¿Qué pasa si el nombre de usuario contiene \ y. ? – Tudorizer

+0

No hay problema. Como mencioné, mi nombre de usuario contiene una barra invertida. –

2

Tenga en cuenta que Git es compatible con servidores proxy HTTP desde Git 1.7.10, Apr. 2012, commit dd61399.

embargo, que supone que haya instalado 7.10.7+ rizo, que es algo Git no estaba comprobando antes de Git 2.3.2+ (Q1 2015)

Esto se fija con commit 1c2dbf2 por Tom G. Christensen (tgc)

http: apoyo rizo < 7.10.7

Commit dd61399 apoyo introducido para servidores proxy HTTP que requieren autenticación, sino que se basa en la opción CURL_PROXYAUTH que se añadió en curl 7.10.7.
Esto asegura que la autenticación proxy solo esté habilitada si libcurl puede soportarlo.

Cuestiones relacionadas