Linux

scp 從遠端伺服器到本地,該遠端伺服器通過 ssh 到另一個遠端伺服器

  • January 24, 2021

我目前在 serverB 上有一個文件,我想將它傳輸到我的本地電腦。要訪問 serverB,我首先 ssh 到 serverA,然後 ssh 到 serverB。(例如 ssh @serverA 然後在 serverA 內部 -> ssh @serverB)

不確定使用 scp 執行此操作的最佳方法是什麼?

您可以使用 中的ProxyJump選項~/.ssh/config。來自man ssh

-J 目的地

連接到目標主機,方法是首先與目標描述的跳轉主機建立ssh連接,然後從那裡建立到最終目標的 TCP 轉發。可以指定多個跳轉躍點,用逗號分隔。這是指定ProxyJump配置指令的快捷方式。請注意,命令行上提供的配置指令通常適用於目標主機,而不適用於任何指定的跳轉主機。使用 ~/.ssh/config 來指定跳轉主機的配置。

例如,您~/.ssh/config可能看起來像這樣:

Host serverA
Port 22

Host serverB
Port 22
ProxyJump serverA

這將告訴ssh您始終通過serverA 連接到 serverB ,並且它將為 normalssh和 for執行此操作scp。換句話說,您可以鍵入ssh serverBor scp serverB:big_file.txt .,它就會知道通過 ServerA 進行路由。(但是,如果您使用公鑰身份驗證,則需要 serverB 所需密鑰的本地副本。)

這在ssh. 中的一個相關配置選項~/.ssh/configProxyCommand.

引用自:https://unix.stackexchange.com/questions/630666