【问题标题】:running git from crontab - permission denied从 crontab 运行 git - 权限被拒绝
【发布时间】:2016-11-16 17:06:13
【问题描述】:

我查看了这个并找到了很多答案,但我是一个 unix/linux 假人。无法听从人们的指示。不确定要编辑哪些文件等。

这里需要简单的分步说明

我有一个这样设置的 shell 文件:

#!/bin/bash
exec &>> /var/www/nginx/yokohama/laravel/storage/cron.log
today='date +%Y-%m-%d.%H:%M:%S';

cp /var/www/nginx/yok/yok_data.xml /var/www/nginx/yok/yok_XML_Files/backup-$(date +"%Y_%m_%d").xml
git add /var/www/nginx/yok/yok_XML_Files/backup-$(date +"%Y_%m_%d").xml
git commit -m "cool test"
git push origin staging

如果我以 root 身份手动运行它,它可以工作,我们都很好。但不能通过我的 cron..

这是我的 crontab

* * * * *  /usr/bin/sh /var/www/nginx/yok/laravel/commit_data.sh

在我的 cron.log 中,我得到了 Permission denied (publickey).^M

我该如何解决这个问题?简单的说明。

【问题讨论】:

  • “如果我以 root 身份手动运行它,它可以工作”。如果您以自己而不是 root 身份手动运行它会怎样?
  • 我唯一可以访问的帐户是 root.. 除非我决定在此登台服务器上创建一个新用户
  • 为您的 root 用户或您的 crontab 用户帐户生成一对 ssh 密钥,并将公钥部署到远程 git 服务器。

标签: linux git unix cron


【解决方案1】:
Permission denied (publickey).^M

您的脚本末尾的^M 可能有\r\n eol(行尾)字符而不是\n:试试dos2unix

还要确保你的脚本是可执行的:

chmod 755 /var/www/nginx/yok/laravel/commit_data.sh

OP hamobi 提到另一个原因in the comments

问题更基本。必须将用户 rsa 密钥移动到 bitbucket。

【讨论】:

  • @hamobi 好的。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 2012-11-14
  • 1970-01-01
  • 2016-08-24
  • 2022-01-03
  • 2016-10-30
  • 2020-07-30
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多