Подключитесь к репозиторию GIT через другой сервер

Текущий сценарий:

Прямо сейчас, чтобы иметь возможность работать с нашим репозиторием git, нам действительно нужно использовать VPN, поскольку сервер репо не имеет общедоступного IP-адреса.

Цель:

То, что я пытаюсь выполнить состоит в том, чтобы настроить сервер с общедоступным IP-адресом и разрешить Git-подключаться через него к серверу репо (частный IP-адрес).

Это можно легко сделать, используя ProxyCommand в локальных конфигурациях пользователя, но для того, чтобы облегчить жизнь пользователя Я ищу что-то, что не требует специальной настройки со стороны пользователя.

Кто-нибудь может помочь? Спасибо.

0
задан 8 December 2016 в 19:39
1 ответ

Прежде всего,Я действительно думаю, что вам следует использовать подход ProxyCommand. В конечном итоге это облегчит жизнь каждому.

При этом, что вы * могли * сделать, так это настроить пользователя git на внешнем узле для передачи команды git внутреннему узлу. Прежде всего, для этого потребуется поместить что-то подобное в / etc / ssh / sshd_config на внешнем узле.

Match User git
    ForceCommand /usr/local/bin/git_wrapper
    AllowTcpForwarding no
    PermitTTY no

Со сценарием git_wrapper , выглядящим примерно так.

#!/bin/bash

case "$SSH_ORIGINAL_COMMAND" in
    git*)
    ssh -o BatchMode=yes git@internal.host "$SSH_ORIGINAL_COMMAND"
    ;;
    *)
    echo "Git only"
    ;;
esac

Вам необходимо убедиться, что external.host:~git/.ssh/known_hosts содержит ключ хоста для внутреннего хоста.

Затем есть часть о том, что external.host может войти в систему как (скрытый). Это можно настроить, разрешив пользователям включить переадресацию агента, или предоставив (скрытый) ключ ssh в (скрытый). Ни один из этих параметров не влияет на безопасность.

Предупреждение: Обратите внимание, что ограничения на $ SSH_ORIGINAL_COMMAND в основном направлен на то, чтобы ваши пользователи случайно не сделали больше, чем следовало бы. Если вы не доверяете своим пользователям запускать произвольные команды ни на external.host, ни на internal.host, не применяйте этот подход.

Кстати, я сказал, что я думаю, вам действительно стоит подход ProxyCommand? Либо так, либо установив какую-то переадресацию на сетевом уровне.

0
ответ дан 5 December 2019 в 09:06

Теги

Похожие вопросы