2017-02-22 3 views
4

Ich habe derzeit eine VPS, die ich als Git-Server verwenden.Port Klopfen vor Git drücken

Dieser VPS ist mit Port-Klopfen geschützt, was bedeutet, dass ich einige Pakete an bestimmte Ports senden muss, bevor ich an den 22-Port (für SSH verwendet) anschließen kann.

Ich dachte, dass ich einen Git pre-push Haken einrichten könnte, der den Port klopft, so dass Git könnte dann mit dem Server verbinden und drücken.

Leider funktioniert dieser Haken nicht. Hier ist, wie ich es tat:

vim .git/hooks/pre-push

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

chmod +x .git/hooks/pre-push

Weder Foo oder Bar angezeigt werden, wenn ich laufen git push. Nichts passiert.

Ich denke, dass git versucht, den Remote-Server vor läuft die Pre-Push Haken zu verbinden.

Wie kann ich meinen Port klopfen Befehl vor Aktion ausführen?

würde ich mich freuen, wenn mir jemand mit diesem Problem :)

+0

Warum erstellen Sie keinen Alias ​​für die Push-Sequenz 'klopfen; schieb .. ". Ok, also muss es einen speziellen Namen wie 'kpush' haben aber ... –

+0

Ja, aber es ist nicht sehr praktisch, und Git Haken sind für diese Art von Dingen gemacht! – Saumon

Antwort

3

Die git hook pre-push ausgeführt wird, nachdem git weiß, was es würde schieben und damit auf die Fernbedienung nach dem Gespräch helfen könnte.

Sie können git config core.sshCommand 'knock && ssh' einstellen, um zu erreichen, was Sie wollen. Wie das funktioniert, lesen Sie in der Dokumentation von git config core.sshCommand und environment variable GIT_SSHCOMMAND.

+0

Vielen Dank für diese Erklärung! Das funktioniert sehr gut :) – Saumon

Verwandte Themen