Linux
scp 從遠端伺服器到本地,該遠端伺服器通過 ssh 到另一個遠端伺服器
我目前在 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 serverB
orscp serverB:big_file.txt .
,它就會知道通過 ServerA 進行路由。(但是,如果您使用公鑰身份驗證,則需要 serverB 所需密鑰的本地副本。)這在
ssh
. 中的一個相關配置選項~/.ssh/config
是ProxyCommand
.