2 個虛擬機器之間的 SCP 文件

2 個虛擬機器之間的 SCP 文件

我有 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

相關內容