无法使用 crontab 运行 git 命令

Unable to run git commands with crontab

我正在设置服务器,我希望服务器中的 git 存储库与原始服务器 (Github) 保持同步。我尝试 运行 一个 cron 作业,它每分钟更新一次服务器中的存储库。这在我的 mac 电脑上是成功的。

定时任务表:

* * * * * bash /home/ubuntu/venv/App/deployer.bash >> /home/ubuntu/venv/App/Logs/deployer.txt 2>&1

这是服务器中失败的部分:

git fetch --all 
git reset --hard origin/master

错误:

Fetching origin
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.
error: Could not fetch origin

在 crontab 之外一切正常。 例如 : 我可以在没有 sudo 的情况下执行 git 存储库中的所有 git 命令。 使用 sudo 我得到与 cronjob 相同的错误。

更新:

找出导致问题的原因:

2>&1 crontab 表达式写的是标准错误,非常正确。 当我 运行 crontab 之外的命令时,它从不请求身份验证。但是在每次执行的 crontab 上,命令都在请求身份验证

现在谁能解释为什么这会导致这样的错误?

每次在执行 git 命令之前将 ssh 密钥添加到 ssh-agent 有效。这就是我所做的。

我在 cronjob 中添加了以下命令:

eval `ssh-agent -s` && ssh-add ~/.ssh/id_rsa && ssh-add -l
git fetch --all && sleep 2s && git reset --hard origin/master