![2 個虛擬機器之間的 SCP 文件](https://rvso.com/image/1345309/2%20%E5%80%8B%E8%99%9B%E6%93%AC%E6%A9%9F%E5%99%A8%E4%B9%8B%E9%96%93%E7%9A%84%20SCP%20%E6%96%87%E4%BB%B6.png)
我有 2 個虛擬機器。第一個虛擬機器是儲存原始檔案的地方。第二個虛擬機器是我的 bash 腳本所在的位置,它應該將檔案從來源複製到我的第二個虛擬機器。
我怎樣才能在 Bash 中做到這一點?
當我的腳本在第三台電腦上執行時,是否可以在 Bash 中將 SCP 檔案從第一台虛擬機器傳輸到第二台虛擬機器?如果是這樣,請告訴我如何執行此操作。
答案1
這是可能的(只要兩台主機都在偵聽 SSH 並且第一個遠端主機可以看到第二個)!為什麼不嘗試呢?
scp remote1:/path/to/file remote2:/path/to
您可能需要為這兩台主機提供使用者名稱和/或密碼(如果您的使用者名稱因電腦而異)。
如果您使用基於代理的身份驗證並啟用代理轉發,則不需要提供任何密碼(這是我首選的工作方法)。
請注意,這與 Bash(甚至虛擬機器)無關,並且應該在任何 shell 中工作。
答案2
通常的方法是透過 ssh 進入一台遠端電腦並從那裡發出 scp。
#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/
答案3
如果您需要透過第三台機器橋接它,您可以使用 ssh 來完成,如下所示:
ssh remote1 cat file | ssh remote2 'cat > file'
或使用焦油:
ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest