Ssh
不在同一網路中的兩台伺服器之間的 scp
我可以通過 2 個不同的 VPN 連接訪問兩台伺服器。我設法讓兩個 VPN 在我的機器上同時工作(一些路由規則)。
我想
scp <remote1>:some/file <remote2>:destination/folder
從我的筆記型電腦終端做一個。但是當我嘗試這個時,在remote1scp
上呼叫的命令找不到remote2,因為它們不在同一個網路中。是否可以強制命令作為路由器通過我的筆記型電腦?scp
如果我嘗試使用 Nautilus(連接到伺服器,兩台伺服器,然後複製粘貼)它可以工作,但我想從終端進行。
較新版本的 scp 具有選項 -3
-3
Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts
如果你需要更多的靈活性
scp -3
,plainssh
和管道很有趣。這相當於在本地機器上重定向流:
ssh sourceRemote 'cat /path/to/sourceFile' \ | ssh destinationRemote 'cat > /path/to/destinationFile'
然後,您可以在任何時候添加更多的流重定向,例如鍊接多台中間機器,或者在傳輸文件的路由時保存傳輸文件的本地副本。