Как я могу использовать rsync через ssh в кроне?

У меня есть частный виртуальный сервер, на который я пробую резервное копирование некоторые каталоги от локального мой /home каталог.

Я подготовил этот сценарий:

#!/bin/bash

/usr/bin/rsync -rvvv /home/arkadiusz/scripts root@XXX.XXX.26.106:/home/backup/

/usr/bin/notify-send "Backup complete" "~/scripts -> vps" -i cryptkeeper

В crontab пользователя я добавил запись:

*/1 * * * * /home/arkadiusz/scripts/vps.sh > /home/arkadiusz/cron-vps.log 2> /home/arkadiusz/cron-vps.error.log

После выполнения сценария оболочки, моего scripts каталог не появляется в /home/backup/ на удаленном сервере. В cron-vps.log файл я вижу только это:

opening connection using: ssh -l root XXX.XXX.26.106 rsync --server -vvvre.iLsfx . /home/backup/  (9 args)
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

В cron-vps.error.log файл оказывается, что это - проблема авторизации:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]

Я проверил дополнительно sshd состояние на моем удаленном сервере:

root@vpsXXXXXX:/home/backup# service sshd status
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-04-12 01:04:09 CEST; 12h ago
 Main PID: 281 (sshd)
   CGroup: /system.slice/ssh.service
           └─281 /usr/sbin/sshd -D

...

Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Failed password for root from XXX.XXX.232.122 port 21782 ssh2
Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Failed password for root from XXX.XXX.232.122 port 21782 ssh2
Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Connection closed by XXX.XXX.232.122 port 21782 [preauth]

На основе этих журналов это, кажется, проблема с авторизацией, но мои работы соединения SSH, когда я пытаюсь войти в систему свое удаленное, разъединяют с этой командой:

ssh root@XXX.XXX.26.106

Кроме того, rsync управляйте работами в терминале без любых паролей:

/usr/bin/rsync -rvvv /home/arkadiusz/scripts root@XXX.XXX.26.106:/home/backup/

Что я делаю неправильно?

5
задан 12 April 2017 в 05:04

1 ответ

В файле cron-vps.error.log оказывается, что это - проблема авторизации:

аутентификация и авторизация является другой проблемой. Это - аутентификация, которая перестала работать (в этом случае пароль, как видимая от журналов).

По всей вероятности Вы настроили свой закрытый ключ, который будет зашифрован, но Вы не замечаете его он нормальные сессии, потому что Вам сохранили его в ssh-agent. Это хорошо работает на Вашей сессии, но это не будет работать на сессии, которая инициируется от Вашего crontab.

4
ответ дан 23 November 2019 в 09:31

Другие вопросы по тегам:

Похожие вопросы: