rsync com usuário diferente

1

Estou trabalhando com duas instâncias do ubuntu na AWS (que eu uso uma chave pem para acessá-las).

Eu configurei o rsync para ambas as instâncias e ele funciona se eu usar o usuário padrão, que é ubuntu @ ipaddress. No entanto, se eu tentar usar o rsync com outro usuário (estou digitando sudo su - jenkins , por exemplo, ou mesmo digitando sudo antes do comando rsync), obtenho o seguinte erro.

Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.0]

Passos que tomei:

Eu tentei criar uma chave ssh (usando ssh-keygen) enquanto estava logado como jenkins e adicionei isso ao arquivo authorized_keys em /home/ubuntu/.ssh/authorized_keys (de onde eu estava rodando o rsync) e até mesmo $JENKINS_HOME/.ssh/authorized_keys (onde eu tentei executar o rsync de lá também).

Eu até tentei usar a tecla pem para fazer a mesma coisa e isso também não funcionou.

Veja o que estou tentando executar

rsync -avuh --delete -e ssh jenkins@ipaddress:/var/lib/jenkins/* /var/lib/jenkins

E aqui está o arquivo de chave

rsync -avuh --delete -e 'ssh -i path/to/key.pem' [email protected]:/var/lib/jenkins/* /var/lib/jenkins

P.S .: A única razão pela qual eu não quero executá-lo com o usuário do Ubuntu é porque eu recebo failed: Permission denied (13) em muitas coisas (já que os arquivos são de propriedade de Jenkins).

meta final:

Estou tentando manter backup da instância do backup do jenkins constantemente com a instância primária, fazendo um cronjob:

*/30 * * * * /usr/bin/rsync -avuh --delete -e ssh root@jenkinsprimary:/var/lib/jenkins/* /var/lib/jenkins

    
por Fadi 04.11.2015 / 19:01

2 respostas

1

Eu tive um problema semelhante com o rsyncing como outro usuário. Resolvido executando o próximo comando:

rsync -avu -e "ssh -i my-key -o StrictHostKeyChecking=no -l user-i-want-to-use-in-rsync" ./local_dir remote_host:remote-host-dir

Por favor, note que talvez você precise jogar com as teclas para poder executar o rsync como outro usuário.

    
por 08.11.2017 / 10:33
-1

Eu tenho problema semelhante.
Eu resolvo isso usando o cron. Mas o cron deve rodar com um usuário específico (ex: jenkins)

Apenas faça o cron job:

$ crontab -u jenkins -e

preencha cron com sua necessidade.

*/2 * * * * sh /home/user/scp.sh 2>&1 >> /home/user/errmail.log
    
por 09.09.2016 / 06:42