rsync via múltiplas conexões ssh com uma chave

4

Eu preciso fazer um rsync de um servidor de destino com um servidor no meio e tenho a mesma chave pública no servidor de destino e do meio. Eu quero usar essa chave para que eu não precise fazer autenticação de senha.

local --ssh--> middle --ssh--> target

O Método de Leitura 1 de Usar o rsync através de um firewall faz parecer que isso é factível, mas eu já consegui descobrir a parte ssh da sintaxe do comando.

Quando eu tento

ssh -i $KEY -A user@middle ssh user@target

Eu obtenho

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).

É evidente que o encaminhamento de agentes não está acontecendo como eu esperava.

Idealmente eu gostaria de colocar tudo em um comando sem ter que colocar nada nos arquivos ~ / .ssh / config. Quais são todas as etapas para fazer um rsync nessa situação?

Obrigado Everett

    
por Everett Toews 20.08.2010 / 06:21

2 respostas

4

O '-A' só carregará identidades carregadas no ssh-agent. ('-i' no comando não será suficiente.)

Que tal algo assim:

ssh-agent sh -c "ssh-add test_ident; rsync -avr --rsh='ssh -TA hostA ssh -TA ' foo/ hostB:/var/tmp/foo/"
    
por 20.08.2010 / 22:00
1

Pessoalmente, faço isso em dois saltos com o seguinte script:

#!/bin/bash
ssh -fN [email protected] -L2211:target.foo:22
rsync "-e ssh -p 2211" /Users/me/dir1/ root@localhost:/backup/dir1/ -avz --progress --delete-after
rsync "-e ssh -p 2211" /Users/me/dir2/ root@localhost:/backup/dir2/ -avz --progress --delete-after

mod conforme necessário.

Parece mais fácil do que jogar com as opções de rsync e se o seu alvo e meio tiverem a sua chave, você não deve ser solicitado.

    
por 20.08.2010 / 11:26

Tags