我有计算机 A、B 和 C。每台计算机都启用了 ssh,我可以使用rsync
.
- A可以ssh到B
- B 可以 ssh 到 C
- A 不能 ssh 到 C
B 具有公共 ssh 访问权限,因此 A 可以连接 B 和 C 可以通信,因为它们位于 vpn 中,而 A 不是其中的一部分。
我想将一些文件(并为此创建一个 cronjob)从 C 复制到 A。
有什么好方法可以做到这一点?
更新:
正如您建议我的相关答案中解释的那样,我能够通过 B SSH 到 C,但我无法rsync
通过 serverB。
考虑 B 正在侦听不在端口 22 上的 ssh。
这对我有用:
作为参考,我阅读了类似问题的答案:
https://stackoverflow.com/a/21787966/399637
如果主机 A 可以连接
ssh
到主机 B,而主机 B 可以ssh
连接到主机 C,那么您可以在主机 A 上设置ssh
客户端配置以通过 B 到 C 进行代理。您还可以告诉rsync
使用ssh
它作为其传输协议 (-e ssh
)。把这两件事结合起来,你就可以通过Bssh
或者rsync
从主机A到C,甚至在一个cron
工作中。