rsync通过多个SSH密钥连接

我需要从中间服务器的目标服务器执行rsync,并且在目标服务器和中间服务器上都具有相同的公钥。 我想使用该密钥,所以我不必进行密码validation。

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

阅读方法1通过防火墙使用rsync似乎这是可行的,但我已经能够找出命令语法的SSH部分呢。

当我尝试

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

我明白了

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

很明显,代理转发没有像我期待的那样发生。

理想情况下,我希望将它全部放在一个命令中,而不必将任何东西放在〜/ .ssh / config文件中。 在这种情况下做rsync的所有步骤是什么?

谢谢,埃弗里特

'-A'只会“携带”加载到ssh-agent中的身份。 (命令中的'-i'将不够用。)

那这样的事情呢?

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

我个人是用下面的脚本来做这个:

 #!/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 

国防部按要求。

这似乎比玩rsync选项更容易,如果你的目标和中间有你的钥匙,你不应该被提示。