將檔案移轉至 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. 使用身分與存取權管理權限修改值區的存取權:
    • 將檔案上傳至 bucket 的帳戶應具備「Storage 物件管理員」權限。
    • 下載檔案的帳戶必須獲派 Storage 物件檢視者角色。
  3. 登入來源裝置,然後將檔案上傳至值區。
  4. 登入目的地裝置,然後從值區下載檔案,完成檔案傳輸作業。
  5. 選用:刪除不再需要的檔案,以免產生不必要的儲存空間費用。

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

使用「透過瀏覽器建立 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. 按一下「上傳檔案」即可上傳檔案。檔案會上傳至 /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 提供安全複製通訊協定 (SCP) 檔案傳輸公用程式,透過已建立的 SSH 連線傳輸檔案。

如要使用 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 上進行 SSH 連線。您可以在控制台中尋找允許 tcp:22 連線的防火牆規則,確認這項規則是否存在。 Google Cloud

前往「防火牆規則」

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

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

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

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

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

      前往 VM 執行個體

    2. 在 VM 清單中,找出目標 VM「外部 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:包含公開金鑰驗證身分 (私密金鑰) 的檔案
    • 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:包含公開金鑰驗證身分 (私密金鑰) 的檔案
  • USERNAME:您的使用者名稱
  • IP_ADDRESS:VM 的外部 IP 位址
  • REMOTE_FILE_PATH:要下載的遠端檔案名稱
  • LOCAL_FILE_PATH:工作站上要儲存您所下載檔案的位置

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

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

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

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

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

    2. 將公開 SSH 金鑰新增至專案中繼資料或 VM 中繼資料。 詳情請參閱「將 SSH 金鑰新增至專案中繼資料」或「將 SSH 金鑰新增至執行個體中繼資料」。

  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。如果連線成功,系統會隨即顯示一個視窗,其中左側為您的本機檔案系統,右側則為 VM 的檔案系統。您可以瀏覽到這些檔案系統中的不同目錄,然後拖曳檔案來轉移至及轉移出 VM。

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

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

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

後續步驟