Ssh

不在同一網路中的兩台伺服器之間的 scp

  • July 30, 2015

我可以通過 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'

然後,您可以在任何時候添加更多的流重定向,例如鍊接多台中間機器,或者在傳輸文件的路由時保存傳輸文件的本地副本。

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