我需要从中间服务器的目标服务器执行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选项更容易,如果你的目标和中间有你的钥匙,你不应该被提示。