Linux

通過多台電腦進行 SFTP

  • July 16, 2018

我想將文件從 A 複製到 D。電腦只能訪問它旁邊的文件。

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

現在,我使用 SFTP 將其從 A 複製到 B,然後 ssh 到 B,將其複製到 C,ssh 到 C 等等。完成後,我返回並關閉每個 ssh 會話並刪除文件。

有沒有一種簡單的方法可以更有效地將文件從 A 發送到 D?現在,該文件必須完全下載到該行中的每台電腦,然後才能刪除。不,使用磁片和步行並不更有效率。

使用 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/

引用自:https://serverfault.com/questions/922024