將檔案移轉至 Linux VM


如要將檔案轉移至 Compute Engine VM 執行個體,視工作站作業系統和目標 VM 執行個體作業系統的不同,您有幾種方式可以選擇。

轉移來源 至 Linux VM
Linux 或 macOS
Windows

透過 Cloud Storage 轉移檔案

Cloud Storage 值區可做為您與 VM 之間的轉移點。您可以使用網路瀏覽器、Google Cloud CLI 或程式設計語言,在 Cloud Storage 和 Compute Engine VM 之間轉移檔案。

您可以根據需求,使用不同的憑證類型進行上傳和下載步驟:

如要使用 Cloud Storage 在電腦和 VM 之間傳輸檔案,請執行下列操作:

  1. 如果您沒有現有的值區可用於檔案轉移,請建立 Cloud Storage 值區
  2. 使用身分與存取權管理權限修改值區的存取權:
    • 將檔案上傳至值區的帳戶應具備 Storage 物件管理員角色。
    • 下載檔案的帳戶應具備 Storage 物件檢視者角色。
  3. 登入來源裝置,並將檔案上傳至值區。
  4. 登入目的地裝置,並從值區下載檔案,完成檔案傳輸作業。
  5. 選用:刪除不再需要的檔案,避免產生不必要的儲存空間費用。

如果您想以反向轉移檔案,請以相反步驟進行此流程。請確認上傳檔案的帳戶具備值區的寫入權限。

使用瀏覽器中的 SSH 轉移檔案

如果您可以使用瀏覽器中的 SSH 建立與 VM 的 SSH 連線,就可以使用該連線將檔案轉移至 VM 和從 VM 傳送。

上傳至 VM

  1. 在 Google Cloud 控制台中,前往「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

  3. 建立連線後,按一下上傳圖示

    系統就會開啟上傳對話方塊。

  4. 選擇要上傳的檔案。
  5. 按一下「Upload Files」上傳檔案。檔案會上傳至 /home/USER 目錄。

從 VM 下載

  1. 在 Google Cloud 控制台中,前往「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

  3. 建立連線後,按一下下載圖示

    系統就會開啟下載對話方塊。

  4. 在「Path」欄位中,輸入要下載的檔案相對路徑。
  5. 按一下「下載」下載檔案。檔案會下載至工作站的預設下載資料夾。

使用 Google Cloud CLI 轉移檔案

Google Cloud CLI 會透過已建立的 SSH 連線提供安全複製通訊協定 (SCP) 檔案轉移公用程式。

如要使用 SCP 轉移檔案,請按照下列步驟操作:

  1. 查看防火牆規則,確認通訊埠 22 上的 SSH 連線是否已獲准;如果沒有,請建立 SSH 防火牆規則
  2. 請確認已在包含要轉移檔案的來源裝置上安裝 gcloud CLI
  3. 使用 gcloud compute scp 指令將檔案傳輸至目標機器。

以下範例會將檔案從工作站複製到 VM 的主目錄:

gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR

更改下列內容:

  • LOCAL_FILE_PATH:機器上檔案的路徑
  • VM_NAME:VM 名稱
  • REMOTE_DIR:遠端機器上的目錄

您也可以從遠端機器反向複製檔案和目錄。以下範例會以遞迴方式將目錄從來源複製到目的地:

gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_FILE_PATH

詳情請參閱 gcloud compute scp 參考說明文件

在 Linux 和 macOS 工作站上使用 SCP 轉移檔案

scp 指令列工具的運作方式與 gcloud compute scp 指令類似,但這個指令需要您手動管理安全殼層金鑰

如要使用 SCP 轉移檔案,您必須在網路上設有防火牆規則,讓 VM 允許在通訊埠 22 上進行安全殼層連線。您可以前往 Google Cloud 控制台,查看是否有允許 tcp:22 連線的防火牆規則,藉此確認防火牆規則是否存在。

前往「防火牆規則」

如果您沒有允許通訊埠 22 上的 SSH 連線的防火牆規則,請建立防火牆規則

scp 工具會使用您用來透過標準安全殼層連線至執行個體的同一個金鑰檔案。

  1. 如果您尚未將公用金鑰套用到 Google Cloud 主控台專案或 VM 執行個體,請建立 SSH 金鑰組,並將公用金鑰新增至專案或執行個體中繼資料

  2. 尋找要接收檔案的 VM 外部 IP。

    1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 在 VM 清單中,找出目標 VM 的「External IP」(外部 IP) 欄中的外部 IP 位址。

  3. 使用 scp 工具,將工作站的檔案複製到目標 VM 的主目錄。在這個範例中,私密金鑰位於 ~/.ssh/my-ssh-key 中。

    scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IPv4_ADDRESS:~
    

    如要使用外部 IPv6 位址,請使用以下語法:

    scp -6 -i ~/.ssh/IDENTITY_FILE LOCAL_FILE_PATH USERNAME@[IPv6_ADDRESS]:~/
    

    更改下列內容:

    • IDENTITY_FILE:包含用於公開金鑰驗證的 ID (私密金鑰) 的檔案
    • LOCAL_FILE_PATH:您要上傳的本機檔案名稱
    • USERNAME:您的使用者名稱
    • IPv4_ADDRESSIPv6_ADDRESS:VM 的外部 IP 位址

您也可以將檔案從 VM 複製到本機工作站,只要將來源和目標變數對調即可。在這個範例中,我們會將檔案從 VM 複製到工作站的某個路徑。

scp -i ~/.sshIDENTITY_FILE USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH

更改下列內容:

  • IDENTITY_FILE:包含用於公開金鑰驗證的 ID (私密金鑰) 的檔案
  • USERNAME:您的使用者名稱
  • IP_ADDRESS:VM 的外部 IP 位址
  • REMOTE_FILE_PATH:您要下載的遠端檔案名稱
  • LOCAL_FILE_PATH:工作站上要下載檔案的位置

在 Windows 工作站上使用 WinSCP 轉移檔案

在 Windows 工作站上,WinSCP 用戶端可讓您透過圖形式的檔案瀏覽器介面,管理執行個體上的檔案。

WinSCP 會使用您用來透過 PuTTY 連線到 VM的相同金鑰檔案。

  1. 如果您尚未為執行個體設定金鑰型 SSH 驗證機制,請按照下列步驟操作:

    1. 使用 PuTTYgen 建立 SSH 金鑰組。私密安全殼層金鑰必須使用 .ppk 格式,這是 PuTTYgen 建立金鑰的預設格式。

    2. 將公開安全殼層金鑰加入專案或虛擬機器的中繼資料。詳情請參閱「將安全殼層金鑰新增至專案中繼資料」或「將安全殼層金鑰新增至執行個體中繼資料」。

  2. 尋找要接收檔案的 VM 外部 IP。

    1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 在 VM 清單中,找出 VM 的「外部 IP」欄中的外部 IP 位址。
  3. 下載並安裝 WinSCP。預設的安裝設定適用於絕大多數的使用者。

  4. 啟動 WinSCP 程式。系統隨即會開啟登入視窗,讓您在其中調整連線設定。

  5. 在 WinSCP 中調整您的連線設定。

    1. 在「File protocol」欄位中,選取 SCP 做為檔案傳輸通訊協定。

    2. 在「Host Name」欄位中,指定您要連線的 VM 外部 IP 位址。

    3. 在 [User name] (使用者名稱) 欄位中,指定您要用來存取專案的 Google 使用者名稱。在這個範例中,使用者為 example-user

      將檔案通訊協定設為 SCP,主機名稱設為 104.196.31.103,使用者名稱設為 example-user。

  6. 按一下「進階」下拉式選單來開啟進階設定,然後瀏覽至「SSH」 >「驗證」

  7. 在「Private key file」方塊中,指定為 VM 建立的安全殼層金鑰組的私密金鑰檔案路徑。

    在「Advanced Site Settings」對話方塊中將私密金鑰檔案設定為 my-ssh-key.ppk。

  8. 按一下 [Ok] (確定) 來儲存進階設定。

  9. 按一下「Login」連線至 VM。如果連線成功,系統會隨即顯示一個視窗,其中左側為您的本機檔案系統,右側則為執行個體的檔案系統。您可以瀏覽到這些檔案系統中的不同目錄,然後拖曳檔案來轉移至及轉移出虛擬機。

  10. 您可能不具備管理執行個體主目錄以外檔案的權限,前往 VM 的主目錄:

    /home/USERNAME
    
  11. 使用 WinSCP 介面,在工作站與 VM 之間移動檔案。

  12. 將檔案複製到 VM 之後,請連線至執行個體,以便您利用完整的 sudo 權限來執行或移動檔案。

後續步驟