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.
+1 gracias por resolver mi problema irritante .. – suhailvs