如果我推送到我的远程原始存储库,则后接收挂钩应该将所有内容推送到另一台机器上的另一个远程存储库。
当我推送到我的原点时,后接收钩子被触发,但我总是收到以下错误消息。
远程:更新后已开始 远程:主机密钥验证失败。 远程:致命:无法从远程存储库读取。 远程:远程:请确保您具有正确的访问权限 远程:并且存储库存在。 远程:更新后结束
post-receive 钩子的内容:
#!/bin/sh
echo "post-update started"
git push --mirror git@<server IP>:root/sample.git
echo "post-update end"
我已经为我的普通用户和 git 用户创建了一个 ssh 密钥,并且都将其添加到授权密钥文件中。
肯定缺少了一些东西,但我不知道是什么?!
答案1
SSH 错误表明服务器密钥的指纹尚未导入到文件中.ssh/known_hosts
。您可以通过ssh git@<server IP>
在 git 服务器上以 git 用户身份手动运行一次来执行此操作。
或者,您可以使用以下 ssh 选项告诉 SSH 不要检查主机密钥:
UserKnownHostsFile=/dev/null
StrictHostKeyChecking=no
您可以将这些添加到您的.ssh/config
文件中。