通过 serverB 将文件从 serverC 同步到 serverA

res*_*es1 5 ssh rsync

我有计算机 A、B 和 C。每台计算机都启用了 ssh,我可以使用rsync.

  • A 可以 ssh 到 B
  • B 可以 ssh 到 C
  • A 无法 ssh 到 C

B 具有公共 ssh 访问权限,因此 A 可以连接 B,而 C 可以进行通信,因为它们位于 VPN 中,而 A 不属于该 VPN。

我想将一些文件(并为此创建一个 cronjob)从 C 复制到 A。

有什么好的方法可以做到这一点?

更新:

我能够通过 B ssh 到 C,正如您建议我的相关答案中所解释的那样,但我无法通过rsyncserverB 。

假设 B 正在监听 ssh,而不是在端口 22 上。

res*_*es1 5

这对我有用:

rsync -avzhP -e "ssh -p portB -A user1@serverB ssh" user2@serverC:somedir/ localdir/
Run Code Online (Sandbox Code Playgroud)

作为参考,我阅读了类似问题的答案:

/sf/answers/1525157651/