如何使用SSH將遠端檔案傳輸到本地

如何使用SSH將遠端檔案傳輸到本地

我可以使用什麼終端機命令將目錄從遠端電腦 (linux) 傳輸到本機電腦 (mac)?最重要的是,我想在透過 SSH 連接到遠端電腦時從命令列執行此操作。我知道如何在本機電腦命令列上使用 SCP,但我不知道如何從遠端電腦使用它(也不知道我的本機路徑是什麼)。

答案1

sshd如果您尚未執行此操作,請在本機電腦上啟動。然後開始一個第二從本機到遠端電腦的會話:

ssh -R 2222:127.0.0.1:22 user@remote

這會將遠端連接埠 2222 轉送到sshd本機上的 127.0.0.1 上進行偵聽,從而建立一個reverse tunnel.然後scp在遠端電腦上運行:

scp -P2222 file 127.0.0.1:/path/

答案2

您也可以執行相反的操作,將檔案從遠端計算機抓取到本機,

ssh -L 2222:[email protected]:22 [email protected] -N &
scp -P 2222 127.0.0.1:/path/to/file/on/remote/machine.diff /tmp

ssh 指令建立一條從 localhost:2222 到網路導向的伺服器 remoteserver.com 後面的遠端電腦 192.168.1.37 的隧道。第二個命令允許您將其複製到本地。

一些這裡有很好的例子和技巧,以及如何在 ~/.ssh/config 中配置它以使其自動化。

答案3

如果您位於為您提供私人 IP 位址的路由器/防火牆後面,則需要將路由器設定為 NAT 連接埠以對應到本機連接埠 22。公有IP位址在您選擇的任何連接埠上(您可以直接對應連接埠 22,但我個人通常建議避免這種情況,因為標準伺服器連接埠是惡意軟體試圖找到入口的常見目標)。

相關內容