Ich möchte auf ein privates (via ssh) Git-Repository zugreifen (klonen/push/pull), während hinter einer Unternehmens-Firewall nur der HTTP-Proxy-Zugriff erlaubt ist. Ich habe ein robustes Java (Daemon) -Programm geschrieben (basierend auf der JSCh-Klassenbibliothek), das es mir ermöglicht, die lokale und entfernte Portweiterleitung zu nutzen, und ich hoffe, dies zu nutzen, aber mein Gehirn tut weh, wenn ich mir überlege, wie ich das einrichten soll .Zugriff auf ein Git-Repository über ssh hinter einer Firewall
GIT repo Depot (ein Begriff Münze) bei foo.server.com/var/git so die natürliche Neigung, die Fireall ignorieren, wäre ein Klon einzurichten:
$ git clone ssh://foo.server.com/var/git/myrepo.git
aber Die Firewall wird diesen Befehl blockieren. Ich bin geneigt, so etwas wie
$ git clone ssh://localhost:8022/var/git/myrepo.git
, um zu versuchen, wo localhost: 8022 Also foo.server.com:22
weitergeleitet wird, ist dieser Weg erstrebenswert? Gibt es eine einfachere Lösung, die noch sicher ist? Gibt es Fallstricke oder Fallstricke, die mir bewusst sein sollten?
Nein. Das macht es so schwer. Nur HTTP ist durch die Firewall erlaubt. Es gibt SSH-Konfigurations-Hacks, die ich verwenden kann, um normale SSH-Befehle zu erhalten, aber ich glaube nicht, dass diese mit dem git-Befehl helfen werden. Ich würde gerne hören, dass ich falsch liege und das werde ich ausprobieren, wenn ich zur Arbeit komme. – pajato0
Meine Antwort wurde aktualisiert: Ihre SSH-Konfigurations-Hacks sollten auch über Git funktionieren. – Thilo
Eigentlich ruft git einfach 'git-upload-pack' /' git-receive-pack' auf, wenn man fetch/push über SSH macht (es tut so etwas wie 'ssh git.example.com" git-upload-pack '/project.git) "" '). Sie können angeben, wo git-upload-pack oder git-receive-pack mit den entsprechenden Optionen für git-fetch/git-push zu finden ist. –