Доступ к репозиторию git через ssh за брандмауэром
Я хотел бы получить доступ к (clone/push/pull) частному (через ssh) git репозиторию, находясь за корпоративным брандмауэром, который разрешает доступ только через HTTP-прокси. Я написал надежную программу Java (daemon) (основанную на библиотеке классов JSCh), которая позволит мне использовать локальную и удаленную переадресацию портов, и я надеюсь использовать это, но мой мозг болит, когда я пытаюсь представить, как настроить это.
Депозит git repo (для монеты фразы) находится на foo.server.com/var/ git, поэтому естественным наклоном, игнорируя firewall, будет создание клона:
$ git clone ssh://foo.server.com/var/git/myrepo.git
но брандмауэр заблокирует эту команду. Я склонен попробовать что-то вроде
$ git clone ssh://localhost:8022/var/git/myrepo.git
где localhost: 8022 перенаправляется на foo.server.com:22
Итак, этот путь стоит того? Есть ли еще более легкое решение, которое еще безопасно? Есть ли подводные камни или ошибки, о которых я должен знать?
Ответы
Ответ 1
Можно ли начать обычную сессию ssh (командной строки)? Если это так, git также должен работать.
При использовании ssh git следует выбрать параметры конфигурации в .ssh/config.
Если этого недостаточно, вы можете указать переменную среды GIT_SSH на модифицированную версию оболочки ssh (или оболочки script).
Ответ 2
Используя socat
и a .ssh/config
следующим образом:
Host=foo.server.com
ProxyCommand=socat - PROXY:your.proxy.ip:%h:%p,proxyport=3128,proxyauth=user:pwd
Вы должны иметь возможность ssh
- foo.server.com
и
git clone ssh://foo.server.com/var/git/myrepo.git
Ожидается, что будет работать.