Я настраиваю сервер и хочу, чтобы репозиторий git на моем сервере соответствовал исходному серверу (Github). Я попытался запустить задание cron, которое каждую минуту обновляет репозиторий на сервере. Это было успешно на моем компьютере Mac.
кронтаб:
* * * * * bash /home/ubuntu/venv/App/deployer.bash >> /home/ubuntu/venv/App/Logs/deployer.txt 2>&1
Вот часть, которая выходит из строя на сервере:
git fetch --all
git reset --hard origin/master
Ошибка:
Fetching origin
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
error: Could not fetch origin
Все отлично работает за пределами crontab.
Например :
Я могу делать все команды git в git repo без sudo.
Используя sudo, я получаю ту же ошибку, что и cronjob.
Обновление:
Разобрался, что вызвало проблему:
2> & 1 в выражении crontab писал стандартную ошибку, и это было очень правильно.
Когда я запускал команды вне crontab, он никогда не запрашивал аутентификацию. Но в crontab при каждом выполнении команды запрашивают аутентификацию
Теперь кто-нибудь может объяснить, почему это может вызвать такую ошибку?