git 推送前敲端口
Port knocking before git push
我目前有一个 VPS 用作 git 服务器。
这个 VPS 受 port-knocking 保护,这意味着我必须先向特定端口发送一些数据包,然后才能连接到 22 端口(使用SSH)。
我想我可以设置一个 git pre-push 钩子,触发端口敲门,这样 git 就可以连接到服务器和推送。
不幸的是,这个钩子不起作用。这是我的做法:
vim .git/hooks/pre-push
echo "Foo"
[my port knocking command which works perfectly fine]
echo "Bar"
chmod +x .git/hooks/pre-push
Foo 或 Bar 当我 运行 git push。没有任何反应。
我猜 git 在 运行 之前尝试连接到远程服务器 预推挂钩.
如何运行我的端口敲门命令在任何操作之前?
如果有人能帮我解决这个问题,我会很高兴:)
git hook pre-push 在 git 知道它会推送什么之后执行,因此在与远程对话之后执行。
您可以设置git config core.sshCommand 'knock && ssh'
来达到您想要的效果。有关其工作原理,请参阅 git config core.sshCommand and the environment variable GIT_SSHCOMMAND.
的文档
我目前有一个 VPS 用作 git 服务器。
这个 VPS 受 port-knocking 保护,这意味着我必须先向特定端口发送一些数据包,然后才能连接到 22 端口(使用SSH)。
我想我可以设置一个 git pre-push 钩子,触发端口敲门,这样 git 就可以连接到服务器和推送。
不幸的是,这个钩子不起作用。这是我的做法:
vim .git/hooks/pre-push
echo "Foo"
[my port knocking command which works perfectly fine]
echo "Bar"
chmod +x .git/hooks/pre-push
Foo 或 Bar 当我 运行 git push。没有任何反应。
我猜 git 在 运行 之前尝试连接到远程服务器 预推挂钩.
如何运行我的端口敲门命令在任何操作之前?
如果有人能帮我解决这个问题,我会很高兴:)
git hook pre-push 在 git 知道它会推送什么之后执行,因此在与远程对话之后执行。
您可以设置git config core.sshCommand 'knock && ssh'
来达到您想要的效果。有关其工作原理,请参阅 git config core.sshCommand and the environment variable GIT_SSHCOMMAND.