我需要从目标服务器执行 rsync,中间有一个服务器,我在目标服务器和中间服务器上都有相同的公钥。我想使用该密钥,这样我就不必进行密码验证。
local --ssh--> middle --ssh--> target
Run Code Online (Sandbox Code Playgroud)
阅读通过防火墙使用 rsync 的方法 1 看起来这是可行的,但我已经能够弄清楚命令语法的 ssh 部分。
当我尝试
ssh -i $KEY -A user@middle ssh user@target
Run Code Online (Sandbox Code Playgroud)
我得到
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
Run Code Online (Sandbox Code Playgroud)
显然,代理转发并没有像我预期的那样发生。
理想情况下,我想将所有内容都放在一个命令中,而不必在 ~/.ssh/config 文件中放入任何内容。在这种情况下执行 rsync 的所有步骤是什么?
谢谢,埃弗雷特
小智 4
“-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/"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4387 次 |
| 最近记录: |