Git non sembra supportare i server proxy autenticati. È possibile controllare http.c
from the git.git repository; al fine di supportare server proxy autenticati, dovrebbe impostare CURL_PROXYUSERPWD
per impostare nome utente e password, ma quella stringa non appare in quel file.
Una possibile soluzione sarebbe quella di risolvere Git; aggiungere altri parametri di configurazione a http.proxyuser
,, http.proxypass
, per impostare il nome utente e la password per il proxy e http.proxyauth
per impostare il metodo di autenticazione e quindi inoltrarli come appropriati cURL configuration options.
Se non si ha voglia di hackerare il codice sorgente Git, è possibile impostare il proprio server proxy locale, che non richiede autenticazione, quindi inoltrarlo da tale server al server proxy che richiede l'autenticazione. Squid supporta this mode of operation, sebbene la configurazione possa essere un po 'complessa; Ho trovato an example configuration che pretende di dimostrare questa configurazione, anche se non ho verificato che funzioni da solo.
modificare: Non importa, dopo aver controllato la Squid source code, sembra supportare solo l'autenticazione di base, non digeriscono l'autenticazione, l'inoltro richieste a un peer:
httpHeaderPutStrf(hdr_out, header, "Basic %s", base64_encode(orig_request->peer_login));
non ho trovato alcuna delega server che possono passare una richiesta insieme a un altro proxy con l'autenticazione digest abilitata; se riesci a trovarne uno che supporti l'autenticazione digest per un proxy upstream, ti consiglio di utilizzarlo.
Altrimenti, mi consiglia di utilizzare un protocollo diverso da HTTP; utilizzare ssh:
se è necessaria l'autenticazione o il protocollo raw git:
se si stanno solo spostando le modifiche da un server pubblico.
fonte
2010-01-18 20:23:13
+1 grazie per aver risolto il mio problema irritante .. – suhailvs