Linux
如何使用 ssh 通過代理轉發多跳複製文件?
我有一組伺服器都正確配置了 SSH 代理轉發。這是典型的堡壘伺服器式配置,您可以從外部連接的唯一機器是伺服器 A。從伺服器 A,您可以使用代理轉發連接到伺服器 B、C、D 等。一切執行良好。
有時我想將文件從本地電腦複製到伺服器 B。為此,我必須首先將文件 scp 到伺服器 A。然後 ssh 到伺服器 A 並將文件 scp 到伺服器 B。然後我從伺服器 A。
有沒有辦法通過伺服器 A 將文件直接從我的電腦複製到伺服器 B,只需在我的本地電腦上執行一個命令?
如果您的 sshd 配置為允許 TCP 轉發,那麼您可以設置從您的電腦通過 A 到 B 的隧道,然後使用它來複製內容。創建隧道
ssh -f -L 2050:B:22 A -N
-f
後台 ssh 命令,以便您可以重新使用終端。-L 2050:B22
將 localhost 埠 2050 綁定到主機 B 埠 22-N
不要執行遠端命令。然後從您的電腦複製到B
scp -P 2050 filetocopy localhost:/destination/path
編輯:如果你使用
ssh -L 2050:B:22 A -N &
然後你會被告知 ssh 命令在後台執行時的 PID。