我試圖從cron運行git push
。當我在shell上以交互方式執行命令時,它很好。當從我的用戶的crontab命令,cron的傳遞錯誤信息通過cron推git
Permission denied (publickey).
我相信它不會找到或閱讀我的〜/ .ssh/id_rsa做的,因爲我可以貓從cron好嗎文件。 UID和EUID在cron工作中設置得很好。 - 有任何想法嗎?
UPDATE
我提供了環境關鍵SSH_AUTH_SOCK我的cron作業時它的工作,但我擔心,這僅僅是有效,只要我參與的記錄。我正在尋找一個解決方案它獨立於交互式登錄。
你最終做了什麼來解決這個問題?對我來說,這不是SSH_AUTH_SOCK變量(嘗試在crontab行中傳遞這個變量)。我得到一個錯誤,git credential-osxkeychain不是有效的git命令。 –
@StephenTurner我在沒有代理轉發的情況下登錄到本機。我啓動ssh代理,將其輸出捕獲到一個文件中。我(外殼)在shell上'源'這個文件,並調用ssh-add(所有這些都在shell腳本中)。最後一條命令將要求輸入密碼短語。只要ssh-agent繼續運行,cron作業只需獲取所述文件,然後git push命令就可以正常運行。 - 我不能評論'git credential-osxkeychain',儘管(我的Linux在運行)。 – ThomasH