Eu tenho um servidor virtual privado para o qual estou tentando fazer backup de alguns diretórios do meu diretório /home
local.
Eu preparei este script:
#!/bin/bash
/usr/bin/rsync -rvvv /home/arkadiusz/scripts [email protected]:/home/backup/
/usr/bin/notify-send "Backup complete" "~/scripts -> vps" -i cryptkeeper
No crontab do usuário, adicionei a entrada:
*/1 * * * * /home/arkadiusz/scripts/vps.sh > /home/arkadiusz/cron-vps.log 2> /home/arkadiusz/cron-vps.error.log
Depois de executar o script de shell, meu diretório scripts
não aparece em /home/backup/
no servidor remoto. No arquivo cron-vps.log
, vejo apenas isto:
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)
No arquivo cron-vps.error.log
, verifica-se que isso é um problema de autorização:
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]
Eu verifiquei adicionalmente sshd
status no meu servidor remoto:
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]
Com base nesses registros, parece haver um problema com a autorização, mas minha conexão SSH funciona quando tento efetuar login no servidor remoto com este comando:
ssh [email protected]
Além disso, o comando rsync
funciona no terminal sem nenhuma senha:
/usr/bin/rsync -rvvv /home/arkadiusz/scripts [email protected]:/home/backup/
O que estou fazendo de errado?