У меня есть виртуальный виртуальный сервер, к которому я пытаюсь создать резервную копию некоторых каталогов из локального каталога /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/
Что я делаю неправильно?
Аутентификация и авторизация - это другая проблема. Это аутентификация, которая терпит неудачу (в этом случае пароль, как видно из журналов).
Скорее всего, вы настроили свой секретный ключ для шифрования, но вы не заметили его обычных сеансов, потому что вы его сохранили в ssh-agent. Он отлично работает в вашей сессии, но это не будет работать в сеансе, инициированном с вашего crontab.
Аутентификация и авторизация - это другая проблема. Это аутентификация, которая терпит неудачу (в этом случае пароль, как видно из журналов).
Скорее всего, вы настроили свой секретный ключ для шифрования, но вы не заметили его обычных сеансов, потому что вы его сохранили в ssh-agent. Он отлично работает в вашей сессии, но это не будет работать в сеансе, инициированном с вашего crontab.
Аутентификация и авторизация - это другая проблема. Это аутентификация, которая терпит неудачу (в этом случае пароль, как видно из журналов).
Скорее всего, вы настроили свой секретный ключ для шифрования, но вы не заметили его обычных сеансов, потому что вы его сохранили в ssh-agent. Он отлично работает в вашей сессии, но это не будет работать в сеансе, инициированном с вашего crontab.
Аутентификация и авторизация - это другая проблема. Это аутентификация, которая терпит неудачу (в этом случае пароль, как видно из журналов).
Скорее всего, вы настроили свой секретный ключ для шифрования, но вы не заметили его обычных сеансов, потому что вы его сохранили в ssh-agent. Он отлично работает в вашей сессии, но это не будет работать в сеансе, инициированном с вашего crontab.
Аутентификация и авторизация - это другая проблема. Это аутентификация, которая терпит неудачу (в этом случае пароль, как видно из журналов).
Скорее всего, вы настроили свой секретный ключ для шифрования, но вы не заметили его обычных сеансов, потому что вы его сохранили в ssh-agent. Он отлично работает в вашей сессии, но это не будет работать в сеансе, инициированном с вашего crontab.