Domanda

Vorrei accedere (clone / push / pull) un repository git privata (via ssh), mentre dietro un firewall aziendale che consente solo l'accesso HTTP proxy. Ho scritto un robusto programma Java (demone) (in base alla libreria di classi JSch) che mi permetterà di sfruttare l'inoltro porta locale e remota e sto sperando di sfruttare questo, ma il mio cervello fa male quando cerco di immaginare come impostare questa funzione .

Il deposito git repo (per coniare una frase) è al foo.server.com/var/git così l'inclinazione naturale, ignorando la Fireall, di creare un clone potrebbe essere:

$ git clone ssh://foo.server.com/var/git/myrepo.git

, ma il firewall bloccherà questo comando. Sono propenso a provare qualcosa di simile

$ git clone ssh://localhost:8022/var/git/myrepo.git

dove localhost: 8022 è trasmesso al foo.server.com:22

Quindi, è su questa strada da perseguire? C'è qualche soluzione più semplice che è ancora sicuro? ci sono trabocchetti o trucchi dovrei essere a conoscenza?

È stato utile?

Soluzione

Si può ottenere uno ssh normale (da riga di comando) della sessione in corso? Se è così, git dovrebbe anche funzionare.

Quando si utilizza ssh, git dovrebbe ritirare le opzioni di configurazione in .ssh / config. Se questo non è sufficiente, si può puntare l'ambiente GIT_SSH variabile alla versione modificata di ssh (o shell wrapper script).

Altri suggerimenti

Utilizzando socat e .ssh/config in questo modo:

Host=foo.server.com
ProxyCommand=socat - PROXY:your.proxy.ip:%h:%p,proxyport=3128,proxyauth=user:pwd

Si dovrebbe essere in grado di ssh a foo.server.com e

git clone ssh://foo.server.com/var/git/myrepo.git

Si prevede di lavorare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top