分享方式:


使用 SCP 在 VM 中移動檔案

適用於:✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集

本文說明如何使用安全複製 (SCP) 從您的工作站將檔案上移至 Azure VM,或從 Azure VM 下移至您的工作站。 在您的工作站與 VM 之間快速又安全地移動檔案,對於管理您的 Azure 基礎結構來說相當重要。

針對本文,您需要在 Azure 中部署 VM,並且已啟用 SSH。 此外,還需要一個用於您本機電腦的 SCP 用戶端。 此工具建置在 SSH 之上,並包含在大多數 Linux 和 Windows (10 和以上版本) 安裝的預設殼層中。

快速命令

將檔案上傳至 VM

scp file azureuser@azurehost:directory/targetfile

從 VM 下載檔案

scp azureuser@azurehost:directory/file targetfile

詳細的逐步解說

作為範例,我們會將 Azure 組態檔上移至 VM,以及將記錄檔目錄下拉,兩者皆使用 SCP 來完成。

SSH 金鑰組驗證

SCP 會針對傳輸層使用 SSH。 SSH 會處理目的地主機上的驗證,它會在 SSH 預設提供的加密通道中移動檔案。 針對 SSH 驗證,可以使用使用者名稱和密碼。 不過,建議的安全性最佳做法是使用 SSH 公用和私密金鑰驗證。 在 SSH 驗證連線之後,SCP 就會開始複製檔案。 使用已正確設定的 ~/.ssh/config 和 SSH 公用與私密金鑰時,只要使用伺服器名稱 (或 IP 位址),即可建立 SCP 連線。 如果您只有一個 SSH 金鑰,SCP 會在 ~/.ssh/ 目錄中尋找它,並預設使用它來登入 VM。

如需有關設定您的 ~/.ssh/config 和 SSH 公用與私密金鑰的詳細資訊,請參閱建立 SSH 金鑰

將檔案上傳至 VM

針對第一個範例,我們會將用來部署自動化的 Azure 組態檔向上複製到 VM。 由於這個檔案包含 Azure API 認證,其中包含祕密,因此安全性很重要。 SSH 提供的加密通道可保護此檔案的內容。

下列命令會將本機 .azure/config 檔案複製到 FQDN 為 myserver.eastus.cloudapp.azure.com 的 Azure VM。 如果您沒有設定 FQDN,您也可以使用 VM 的 IP 位址。 Azure VM 上的管理使用者名稱是 azureuser。 此檔案的目標為 /home/azureuser/ 目錄。 請在此命令中使用您自己的值來替代。

scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config

從 VM 下載目錄

針對此範例,我們會從 VM 將記錄檔目錄向下複製到您的工作站。 記錄檔可能包含也可能不包含敏感或祕密資料。 不過,使用 SCP 可確保將記錄檔的內容加密。 記錄目錄可能包含太多相關檔案,無法一次複製一個檔案,因此在此情況下,最好下載整個目錄。 使用 SCP 來傳輸檔案,不僅是將記錄檔目錄和檔案向下移到您工作站的最簡單方式,同時也很安全。

下列命令會將 Azure VM 上 /home/azureuser/logs/ 目錄中的檔案複製到本機 /tmp 目錄:

scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/

-r 旗標指示 SCP 以遞迴方式從命令中列出的目錄點複製檔案和目錄。 另請注意,命令列語法類似 cp 複製命令。

下一步