Vorrei accedere (clone/push/pull) a un repository privato (tramite ssh) git dietro un firewall aziendale che consente solo l'accesso proxy http. Ho scritto un robusto programma Java (daemon) (basato sulla libreria di classi JSCh) che mi permetterà di sfruttare il port forwarding locale e remoto e spero di sfruttarlo, ma il mio cervello fa male quando cerco di immaginare come impostare questo .Accesso a un repository git tramite ssh dietro un firewall
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
Così è questo percorso la pena di perseguire? C'è una soluzione più semplice che sia ancora sicura? Ci sono insidie o trucchi di cui dovrei essere a conoscenza?
No. Ecco cosa lo rende così difficile. Solo http è consentita attraverso il firewall. Ci sono hack di configurazione SSH che posso usare per far funzionare i normali comandi ssh ma non credo che questi possano essere d'aiuto con il comando git. Mi piacerebbe sentire che ho torto e lo proverò quando andrò al lavoro. – pajato0
Aggiornato la mia risposta: i vostri hack di configurazione SSH dovrebbero funzionare anche tramite git. – Thilo
In realtà git invoca semplicemente 'git-upload-pack' /' git-receive-pack' quando esegue il recupero/push tramite SSH (fa qualcosa come 'ssh git.example.com" git-upload-pack '/project.git '"'). È possibile specificare dove trovare git-upload-pack o git-receive-pack utilizzando le opzioni appropriate per git-fetch/git-push. –