通过 cron 推送

Posted

技术标签:

【中文标题】通过 cron 推送【英文标题】:git push via cron 【发布时间】:2021-12-27 01:29:29 【问题描述】:

我正在尝试从 cron 运行 git push。当我在 shell 上以交互方式执行命令时,它运行良好。从我的用户的 crontab 运行命令时,cron 会传递错误消息

Permission denied (publickey).

我认为这与查找或读取我的 ~/.ssh/id_rsa 无关,因为我可以从 cron 中捕获文件。 UID 和 EUID 在 cron 作业中设置得很好。 - 有什么想法吗?

更新

我在为我的 cron 作业提供环境密钥 SSH_AUTH_SOCK 时让它工作了,但我担心这只有在我登录时才有效。我正在寻找一种独立于交互式登录的解决方案.

【问题讨论】:

你最终做了什么来解决这个问题?对我来说这不是 SSH_AUTH_SOCK 变量(尝试在 crontab 行中传递它)。我收到 git credential-osxkeychain 不是有效的 git 命令的错误。 @StephenTurner 我在没有代理转发的情况下登录机器。我启动 ssh 代理,将其输出捕获到文件中。我(shell)在 shell 上“获取”这个文件并调用 ssh-add(所有这些都在 shell 脚本中)。最后一个命令需要输入密码。只要 ssh-agent 继续运行,cron 作业只需​​获取上述文件,然后 git push 命令就可以正常运行。 - 不过,我无法评论“git credential-osxkeychain”(我的在 linux 上运行)。 【参考方案1】:

作为explained here,这可能是由于ssh代理的cron会话shell缺乏知识。 如果是这种情况(即,如果您使用带有密码的 ssh 私钥),keychain 是通常的解决方案(如mentioned here)。 此示例中的更多详细信息:“Passwordless connections via OpenSSH using public key authentication, keychain and AgentForward”。

【讨论】:

优秀的答案。这为我的修修补补提供了必要的背景。 这似乎对我不起作用。我收到一个错误,指出 git credential-osxkeychain 不是有效的 git 命令。谢谢。 @StephenTurner ***.com/questions/11745504/… 会有帮助吗?

以上是关于通过 cron 推送的主要内容,如果未能解决你的问题,请参考以下文章

IOS推送通知连接开启关闭每日限制

如何检索推送通知php的ck.pem文件

如何让我的服务器在插入新记录时触发推送通知?

shell脚本每天创建带有时间戳的文件夹并推送时间戳生成的日志

极光推送SDK通过泰尔终端实验室检测,符合统一推送接口标准

如何实现消息推送功能