Я работаю на Mac и хочу еженедельно настраивать crontab для rsync с моего VPS, чтобы получать архивы резервных копий. Я использую ключи ssh (пароли не разрешены на VPS), и обычно я могу использовать ssh без каких-либо запросов (у моего закрытого ключа есть кодовая фраза, но она хранится в цепочке ключей Mac). Однако, когда cron запускает скрипт, он терпит неудачу и отправляет мне электронное письмо с сообщением, что ssh не удалось:
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]
Выполняемый скрипт:
#!/bin/sh
rsync -Cavz -e "ssh -i /Users/bob/.ssh/id_rsa" bob@myvps:/backups/ ~/Documents/Backups
Что я делаю не так?
Я не думаю, что cron имеет доступ к вашей кодовой фразе, и поэтому вы не можете войти на свой удаленный сервер. Лучший способ добиться этого - создать новый ключ без ключевой фразы.
Использование ключа без парольной фразы менее безопасно, но вы можете ограничить его использование. Видеть ФОРМАТ ФАЙЛА AUTHORIZED_KEYS раздел в sshd руководство.