Configuring git and package managers behind a proxy - DataImpulse
  • Published:
  • Last Updated:
  • General
  • 6 min read

Lavorare con GitHub dall’interno di una rete aziendale è di solito un problema di configurazione distribuito tra cinque strumenti che non condividono le impostazioni. Un clone funziona e npm install fallisce; npm funziona e Docker non riesce a eseguire il pull; tutto funziona dalla riga di comando e l’IDE non riesce a raggiungere nulla.

Questa guida spiega dove ogni strumento legge le impostazioni del proxy, perché SSH si comporta diversamente da HTTPS, come interpretare i quattro tipi di errore che vedrai davvero e le due scorciatoie che vale la pena rifiutare.


Informazioni chiave

  • Ogni strumento ha la propria configurazione del proxy. Git, npm, pip, Docker e la shell leggono tutti impostazioni diverse, ed è per questo che correggerne uno lascia gli altri non funzionanti.
  • SSH di solito fallisce dove HTTPS funziona, perché la maggior parte dei proxy aziendali inoltra solo HTTP CONNECT sulle porte standard.
  • Gli errori di certificato indicano quasi sempre l’ispezione TLS, e la soluzione è considerare attendibile la CA aziendale anziché disabilitare la verifica.
  • Non disabilitare mai la verifica del certificato per far funzionare un clone. Trasforma un problema di configurazione visibile in un problema di sicurezza invisibile.
  • Le credenziali in un URL del proxy finiscono nei log e nella cronologia della shell, quindi usa invece l’archivio delle credenziali dello strumento.

Dove legge ogni strumento le impostazioni del proxy?

Separatamente, ed è all’origine della maggior parte della confusione. Lo chiamiamo modello della toolchain in 4 parti.

Strumento Dove cerca Lacuna comune
1. Git La propria configurazione, poi le variabili d’ambiente I remote HTTPS funzionano mentre quelli SSH no
2. Gestori di pacchetti I propri file di configurazione, poi le variabili d’ambiente Ognuno richiede una configurazione separata; i registry possono differire da GitHub
3. Docker Configurazione del daemon, non solo della shell Le variabili della shell non raggiungono il daemon che esegue il pull delle immagini
4. IDE ed editor Le proprie impostazioni, talvolta l’archivio di sistema Il terminale funziona, le funzioni integrate no

Una configurazione github proxy funzionante significa quindi cinque configurazioni, non una. L’ordine pratico è impostare le variabili d’ambiente per la shell, poi configurare git, quindi ogni gestore di pacchetti, poi il daemon Docker e includere fin dall’inizio un elenco no-proxy per gli host interni. Saltare l’ultimo passaggio è ciò che rende i servizi interni irraggiungibili dopo una configurazione altrimenti riuscita.


Perché SSH fallisce quando HTTPS funziona?

Perché sono protocolli diversi su porte diverse, e la maggior parte dei proxy aziendali inoltra solo HTTP CONNECT verso un piccolo gruppo di porte.

Git tramite HTTPS è una normale richiesta web che un proxy gestisce nativamente. Git tramite SSH usa la porta 22, che di solito non è affatto consentita attraverso il proxy. Il risultato è che un repository viene clonato senza problemi con un remote HTTPS e va in timeout con un remote SSH, e il messaggio di errore raramente spiega il perché.

Tre soluzioni pratiche, in ordine di preferenza: passa il remote a HTTPS con un token, usa SSH sulla porta HTTPS dove GitHub lo supporta oppure chiedi al team di rete di consentire SSH verso host specifici. La prima funziona ovunque ed è quella adottata dalla maggior parte dei team.


Come interpretare gli errori?

Errore Usa questa soluzione quando Evita quando
Verifica del certificato non riuscita Aggiungi la CA aziendale all’archivio attendibile dello strumento Non disabilitare mai la verifica, che nasconde un rischio reale
Timeout della connessione su un remote SSH Passa a HTTPS o usa SSH sulla porta HTTPS Riprovare; la porta è bloccata, non lenta
Autenticazione del proxy richiesta Configura le credenziali nell’archivio dello strumento Inserirle in un URL, perché finirebbero nei log
Funziona nel terminale, fallisce in Docker Configura il daemon Docker, poi riavvialo Aggiungere altre variabili della shell, che il daemon non legge mai
Host interni irraggiungibili dopo la configurazione Aggiungili all’elenco no-proxy Rimuovere completamente la configurazione del proxy

La prima riga è quella su cui conviene essere inflessibili. L’ispezione TLS significa che un middlebox termina e firma nuovamente le connessioni, e la risposta corretta è considerare attendibile deliberatamente la CA dell’organizzazione. Disabilitare la verifica fa sparire l’errore e rende invisibile ogni futura intercettazione.


Quando un proxy esterno è lo strumento giusto?

Raramente per questo problema, ed è importante dirlo chiaramente.

Un proxy aziendale è un’infrastruttura gestita dalla tua organizzazione, e la soluzione per l’accesso a GitHub tramite esso è la configurazione, non un secondo proxy. Aggirare un controllo di rete che il tuo datore di lavoro ha deliberatamente predisposto è una questione di policy prima che tecnica.

Un proxy commerciale si applica davvero a un lavoro diverso che coinvolge comunque GitHub: raccogliere dati di repository pubblici su larga scala, verificare come una pagina pubblica viene visualizzata da un altro paese o eseguire controlli automatizzati da più regioni. Per raccogliere dati dei repository in particolare, l’API GitHub con un token è prima di tutto la soluzione giusta, ed è abbastanza generosa da rendere il web scraping raramente giustificato.

Quando la raccolta richiede davvero uscite distribuite, DataImpulse residential copre 195 paesi a $1 per GB. Correlati: proxy per il web scraping, spiegazione di 403 Forbidden.


Domande frequenti

Come configuro git per usare un proxy?

Imposta il proxy nella configurazione di git o nelle variabili d’ambiente standard, e aggiungi contemporaneamente gli host interni a un elenco no-proxy. Git legge la propria configurazione separatamente da npm, pip e Docker, quindi ogni strumento richiede una configurazione individuale.

Perché git clone tramite SSH fallisce dietro un proxy?

Perché SSH usa la porta 22 e la maggior parte dei proxy aziendali inoltra solo HTTP CONNECT verso le porte web standard. I remote HTTPS funzionano perché sono normali richieste web. Passare il remote a HTTPS con un token è la soluzione che funziona nel maggior numero di ambienti.

Quali sono le cause degli errori di certificato dietro un proxy aziendale?

L’ispezione TLS: un middlebox termina e firma nuovamente le connessioni con l’autorità di certificazione dell’organizzazione. La soluzione è aggiungere quella CA all’archivio attendibile di ogni strumento. Disabilitare la verifica del certificato rimuove l’errore e la capacità di rilevare un’intercettazione reale.

Perché Docker fallisce quando il terminale funziona?

Perché è il daemon Docker a eseguire il pull delle immagini, non la shell, e legge la propria configurazione anziché le variabili d’ambiente. Configura le impostazioni del proxy del daemon e riavvialo.

Dovrei usare un proxy commerciale per raggiungere GitHub al lavoro?

No. Un proxy aziendale è un’infrastruttura gestita deliberatamente dalla tua organizzazione, e la soluzione è la configurazione. I proxy commerciali si applicano a un lavoro diverso, come raccogliere dati pubblici da molte regioni, e anche in quel caso l’API GitHub con un token è di solito la soluzione migliore.


Quando il lavoro è la raccolta, non la connettività

Verificare come le pagine pubbliche vengono visualizzate da altre regioni o raccogliere dati pubblici su larga scala è un problema diverso dalla configurazione della rete aziendale. DataImpulse residential proxies coprono 195 paesi a $1 per GB. Crea un account quando è questo il lavoro da svolgere.

Correlati: proxy per il web scraping · 403 Forbidden durante il web scraping · che cos’è un web proxy.

Ultimo aggiornamento: 17 settembre 2026.


Share article: