我正在尝试从cron运行git push
。当我在shell上以交互方式执行命令时,它会很好。从我的用户的crontab运行命令时,cron会传递错误消息
Permission denied (publickey).
我认为它与查找或阅读我的〜/ .ssh / id_rsa没有关系,因为我可以从cron中取出文件。在cron作业中,UID和EUID设置正常。 - 有什么想法吗?
更新
在向我的cron作业提供环境密钥SSH_AUTH_SOCK时我得到了它的工作,但是我担心这只有在我登录时才有效。我正在寻找一种独立于交互式登录的解决方案
答案 0 :(得分:7)
作为explained here,可能是由于ssh代理的cron会话shell缺乏知识。
如果是这种情况(例如,如果您使用带密码的私有ssh密钥), keychain 是通常的解决方案(mentioned here)。
此示例中的更多详细信息:“Passwordless connections via OpenSSH using public key
authentication, keychain and AgentForward”。