Отключение порта до нажатия git

В настоящее время у меня есть VPS, который я использую как git-сервер.

Этот VPS защищен от порчи , что означает, что я должен отправить некоторые пакеты на определенные порты, прежде чем я смогу подключиться к 22-му порту (используется для SSH).

Я подумал, что могу настроить git pre-push hook, который запускает поршень порта, чтобы git мог подключиться к серверу и нажать.

К сожалению, этот крючок не работает. Вот как я это сделал:

vim .git/hooks/pre-push

 echo "Foo" [my port knocking command which works perfectly fine] echo "Bar" 

chmod +x .git/hooks/pre-push

При запуске git нажмите Foo или Bar . Ничего не произошло.

Я предполагаю, что git пытается подключиться к удаленному серверу перед запуском предварительного нажатия .

Как я могу запустить команду детонации порта перед любым действием?

Я был бы рад, если бы кто-нибудь мог мне помочь с этой проблемой 🙂

Предварительное нажатие кнопки git выполняется после того, как git знает, что он будет нажимать и, таким образом, после разговора с пультом дистанционного управления.

Вы можете установить git config core.sshCommand 'knock && ssh' для достижения желаемого. Как это работает, см. Документацию git config core.sshCommand и переменную среды GIT_SSHCOMMAND .