Estou com problemas ao transferir arquivos com o rsync via ssh.
Se eu apenas correr
rsync -avz [email protected]:/home/devel/ $/home/user/rsync/servidor
funciona como esperado, pois a chave pública é armazenada no computador remoto, mas se eu executar essa mesma linha no crontab,
* * * * * rsync -avz [email protected]:/home/devel/ $HOME/rsync/servidor
a sincronização falha.
Depois de navegar na web, descobri que o crontab não é capaz de ver a chave privada, uma vez que é executado com algumas restrições, então alterei o crontab para o seguinte
* * * * * cd /home/user/rsync;/bin/sh transfer.sh >> /home/user/rsync/log/cron.log 2>&1
onde o transfer.sh é
#!/bin/sh
#BASH_ENV=/home/user/.bashrc
echo ""
echo "Cronjob started for back-up files" 'date'
set -xv
/usr/bin/rsync -avz -e "/usr/bin/ssh -i $/home/user/.ssh/id_rsa" [email protected]:/home/devel/ /home/user/rsync/servidor
A idéia é que agora o rsync use explicitamente a chave privada ssh para conectar-se à máquina remota, mas ainda assim tenho problemas com essa abordagem. O log:
Cronjob started for back-up files Qua Fev 4 13:39:02 BRST 2015
#/usr/bin/rsync -vv [email protected]:/home/devel /home/user/rsync/servidor
#rsync -avz -e “ssh -i /home/user/.ssh/id_rsa” [email protected]:/home/devel /home/user/rsync/servidor
/usr/bin/rsync -avz -e "/usr/bin/ssh -i $HOME/.ssh/id_rsa" [email protected]:/home/devel/ $HOME/rsync/servidor
+ /usr/bin/rsync -avz -e /usr/bin/ssh -i /home/user/.ssh/id_rsa [email protected]:/home/devel/ /home/user/rsync/servidor
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]
No entanto, a linha
/usr/bin/rsync -avz -e "/usr/bin/ssh -i $/home/user/.ssh/id_rsa" [email protected]:/home/devel/ /home/user/rsync/servidor
funciona bem no terminal.
SO: Linux mint Quaina
Qualquer ajuda seria apreciada
EDITAR:
Eu usei uma senha quando criei a chave SSH. As permissões são:
ls -l /home/user/.ssh/id_rsa
-rw------- 1 user user 1766 Dez 16 15:40 /home/user/.ssh/id_rsa