如何将 scp 副本从一台机器传送到另一台机器?

如何将 scp 副本从一台机器传送到另一台机器?

假设我们有三台机器:A、B 和 C。

  • 机器 A 无法从任何网络访问机器 B,因此我无法在两者之间发送文件。
  • 但从C(我的机器)可以到达A和B。

今天我要把一个大文件从A复制到B。

目前,我需要先将其从 A 复制到 C,然后从 C 复制到 B。有没有办法连接或通过管道scp将传入数据流式传输到目标计算机,而无需在中间保存?

答案1

man scp写道(我强调)

-3两个远程主机之间传输副本通过本地主机。如果没有此选项,数据将直接在两个远程主机之间复制。 [...]

因此,您需要的是一个通过本地系统路由的复制命令(我几乎总是包含-p, 以保留时间戳和权限,所以我在这里也这样做了):

scp -3p serverA:path/to/file(s) serverB:/path/to/destination

最新版本scp-3 默认启用自 2021 年 8 月 9 日起,要禁用它,现在必须指定-R.使用此第三方复制功能将禁用输入口令和密码的提示,因为scp无法向两台主机询问它们。

答案2

scp user1@A:from_file user2@B:to_file应该可以解决问题。读man scp

相关内容