通过多台计算机进行 SFTP

通过多台计算机进行 SFTP

我想将一个文件从 A 复制到 D。计算机只能访问其旁边的文件。

+---------------------------------------------------------+
| Computer A <-> Computer B <-> Computer C <-> Computer D |
+---------------------------------------------------------+

现在,我使用 SFTP 将其从 A 复制到 B,然后通过 ssh 进入 B,将其复制到 C,再通过 ssh 进入 C,依此类推。完成后,我返回并关闭每个 ssh 会话并删除文件。

有没有更简便、更高效的方式将文件从 A 发送到 D?目前,文件必须完全下载到该行中的每台计算机,然后才能删除。不,使用软盘和步行并不是更有效率。

答案1

使用 LocalPortForwarding 设置本地端口监听并作为目标 SSH 服务。

+---------------------------------------------------------+
| Computer A <-> Computer B <-> Computer C <-> Computer D |
+---------------------------------------------------------+

在 [ComputerC] 上,在套接字 localhost:2022 上创建一个侦听器,通过将流量转发到 ComputerD:22 来充当 ComputerD 的 SSH

$ ssh -L2022:ComputerD:22 ComputerD

在 [ComputerB] 上,在套接字 localhost:2022 上创建一个侦听器,通过将流量转发到 ComputerC 的 localhost:2022 来充当 ComputerD 的 SSH

$ ssh -L2022:localhost:2022 ComputerC

在 [ComputerA] 上,在套接字 localhost:2022 上创建一个侦听器,通过将流量转发到 ComputerB 的 localhost:2022 来充当 ComputerD 的 SSH

$ ssh -L2022:localhost:2022 ComputerB

使用 ComputerA 上的端口 2022 作为 ComputerD 的 SSH 服务,复制文件

$ scp -P2022 file localhost:/path/

相关内容