【发布时间】:2014-01-18 02:35:51
【问题描述】:
我为github帐户设置了一个ssh密钥,所以我不必每次都输入密码,它工作正常。这是我使用的脚本:
#!/bin/bash
git push origin master
但是当我使用 cron 运行它时,它不会使用我的 ssh 密钥。这是输出:
Permission denied (publickey)
fatal: The remote end hung up unexpectedly
我四处搜索并找到了一些文章,但没有一篇能解决我的问题。以下是我找到的文章(以及更多):
https://askubuntu.com/questions/110565/why-is-git-not-using-my-pubkey-with-crontab
https://unix.stackexchange.com/questions/35466/how-to-perform-git-push-using-crontab
谁能给我一步一步的指示来解决这个问题?
【问题讨论】:
-
你的 ssh 私钥有密码吗?如果是,您通常何时/如何输入密码来解锁密钥?
-
@janos 没有密码,所以我不必输入密码。我希望它是自动的。
-
你说脚本在 shell 中运行时有效,但在 cron 中运行时无效。 cron 是以相同用户还是不同用户运行?例如,也许你在 shell 中使用用户
jack运行,但在 cron 中你使用用户root运行它? -
@janos 同一用户,我使用
crontab -u jack -e编辑,crontab -l包含该作业。 -
@xfx 请注意,给出了 -u 选项,它指定要调整其 crontab 的用户的名称,而不是除 root 之外的任何其他人运行 cron。