我目前有一个用作git服务器的VPS。
此VPS受端口敲门保护,这意味着我必须先将一些数据包发送到特定端口才能连接到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
运行 git push 时,不显示 Foo 或 Bar 。没有任何事情发生。
我想git会在 运行 pre-push 挂钩之前尝试连接到远程服务器 。
如何在任何操作之前运行我的端口敲门命令?
如果有人能帮我解决这个问题,我会很高兴:)
答案 0 :(得分:3)
{4}}在git知道它将推送什么之后执行,因此在与远程控制器通信之后执行。
您可以设置git config core.sshCommand 'knock && ssh'
以达到您想要的效果。有关其工作原理,请参阅git hook pre-push和git config core.sshCommand。