Port knocking before git push

Actualmente tengo un VPS que utilizo como un server de git.

Este VPS está protegido con acceso a puertos , lo que significa que tengo que enviar algunos packages a puertos específicos antes de poder conectarme al puerto 22 (utilizado para SSH).

Pensé que podría configurar un gancho pre-push git, que activa el golpeteo del puerto, para que git pueda conectarse al server y presionar.

Lamentablemente, este gancho no funciona. Así es como lo hice:

vim .git/hooks/pre-push

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

chmod +x .git/hooks/pre-push

Ni Foo ni Bar se muestran cuando ejecuto git push . No pasa nada.

Supongo que git intenta conectarse al server remoto antes de ejecutar el gancho de pre-push .

¿Cómo puedo ejecutar mi command de golpeo al puerto antes de cualquier acción?

Estaría feliz si alguien pudiera ayudarme con este problema 🙂

El pre-push de git hook se ejecuta después de que git sepa qué presionaría y, por lo tanto, después de hablar con el control remoto.

Puede configurar git config core.sshCommand 'knock && ssh' para lograr lo que quiere. Para saber cómo funciona, consulte la documentation de git config core.sshCommand y la variable de entorno GIT_SSHCOMMAND .