連線至內部 SFTP 伺服器

本文說明如何在 Cloud FTP 中連線至內部安全檔案傳輸通訊協定伺服器。SFTP 伺服器可讓您安全地將檔案傳輸至 Cloud Storage,以及從 Cloud Storage 傳輸檔案。您可以使用標準 SFTP 指令和 SFTP 用戶端,在 Cloud Storage 儲存空間值區中上傳或下載資料。

您只能透過 Private Service Connect,在虛擬私有雲 (VPC) 網路中存取內部伺服器。如需背景資訊,請參閱「VPC 總覽」和「Private Service Connect 總覽」。

事前準備

請完成下列各節的必要條件。

設定虛擬私有雲網路

本文中的步驟假設您已有虛擬私有雲網路。如需建立虛擬私有雲網路的步驟,請參閱「建立及管理虛擬私有雲網路」。

您可以從與端點位於相同網路的 Compute Engine 執行個體或服務,連線至 Private Service Connect 端點的私人 IP 位址。您可能需要設定網路,允許這些連線。舉例來說,如果您使用 Compute Engine 用戶端 VM 連線至端點,請新增防火牆規則,允許傳入 VM 執行個體的 SSH 連線。

設定 Private Service Connect 端點

首次連線至內部 SFTP 伺服器前,請先完成下列步驟:

  1. 產生用於向伺服器驗證身分的 SSH 金鑰組。

    您需要哪種金鑰格式?

    您需要的金鑰格式取決於用來連線至安全檔案傳輸通訊協定伺服器的用戶端。詳情請參閱「支援的 SFTP 用戶端」。

    PEM 格式

    1. 如要建立 OpenSSH 金鑰組 (PEM 格式),請使用 ssh-keygen 公用程式。

      在要連線至 SFTP 伺服器的用戶端機器上,執行下列指令:

      ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME

      將 KEY_PAIR_NAME 替換為金鑰配對的名稱,例如 sftp_user_key。

    2. 擷取公開金鑰:

      cat ~/.ssh/KEY_PAIR_NAME.pub

    PPK 格式

    1. 如要建立 PuTTY 金鑰組 (PPK 格式),請使用 PuTTYgen 工具。

      在要連線至 SFTP 伺服器的用戶端機器上,執行下列指令:

      puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk

      將 KEY_PAIR_NAME 替換為金鑰配對的名稱,例如 sftp_user_key。

    2. 擷取公開金鑰:

      puttygen -L KEY_PAIR_NAME.ppk

    將公開金鑰提供給 Cloud FTP 管理員。管理員會為您建立 SFTP 使用者帳戶,並將您新增至伺服器。

  2. 請向 Cloud FTP 管理員索取下列資訊,以便連線至伺服器:

    • 伺服器的服務連結 URI。
    • 你的 SFTP 使用者名稱。
    • (選用) 伺服器的金鑰指紋。
  3. 按照步驟建立 Private Service Connect 端點。用下列資訊作答:

    • 目標:選取「已發布的服務」。
    • 目標服務:服務連結的 URI。服務附件 URI 的格式為 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME。
    • 名稱:端點的名稱。請使用與服務附件 URI 中 SERVICE_PROJECT 相同的值。
    • 「Network」(網路):端點的虛擬私有雲網路。
    • 子網路:端點的子網路。
    • IP 位址:為端點建立 IP 位址。
    • 如果您要在與服務連結不同的區域中建立用戶端 VM,請選取「啟用全域存取權」。

    記下端點的 IP 位址。

  4. 在與端點相同的網路中,設定用戶端 (例如 Compute Engine 執行個體或服務),以便執行個體或服務連線至端點的私人 IP 位址。

    舉例來說,如要將 Compute Engine 執行個體做為用戶端 VM,請執行下列操作:

    1. 如果還沒有 Compute Engine 執行個體,請按照步驟建立執行個體。用下列資訊作答:

      • 區域:如果您在建立端點時未啟用全域存取權,請選取與 SFTP 伺服器服務連結相同的區域。
      • 網路介面:選取與端點相同的虛擬私有雲網路和子網路。

      記下用戶端 VM 的名稱和區域。

    2. 將私密金鑰轉移至用戶端 VM:

      gcloud compute scp ~/.ssh/KEY_PAIR_NAME CLIENT_VM_NAME:~/.ssh/KEY_PAIR_NAME \
      --zone=CLIENT_VM_ZONE --project=PROJECT_ID

      更改下列內容:

      • CLIENT_VM_NAME:用戶端 VM 的名稱。
      • CLIENT_VM_ZONE:用戶端 VM 的可用區。
      • PROJECT_ID:Google Cloud 專案的專案 ID 或編號。

連線至內部 SFTP 伺服器

OpenSSH

  1. 連線至與 Private Service Connect 端點位於相同虛擬私有雲網路的用戶端 Compute Engine 執行個體或服務。

    舉例來說,如果您使用 Compute Engine 執行個體做為用戶端 VM,請使用 SSH 連線至用戶端 VM:

    gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID

    更改下列內容:

    • CLIENT_VM_NAME:用戶端 VM 的名稱
    • CLIENT_VM_ZONE:用戶端 VM 的可用區
    • PROJECT_ID:您的 Google Cloud 專案的專案 ID 或編號
  2. 使用 OpenSSH 連線至 SFTP 伺服器:

    sftp -i ~/.ssh/KEY_PAIR_NAME USERNAME@IP_ADDRESS

    更改下列內容:

    • KEY_PAIR_NAME:安全殼層金鑰組的名稱,例如 sftp_user_key
    • USERNAME:你的 SFTP 使用者名稱
    • IP_ADDRESS:Private Service Connect 端點的 IP 位址

    如果是首次連線至伺服器,您可能會看到類似以下內容的訊息: The authenticity of host 'HOSTNAME (IP_ADDRESS)' can't be established, 以及伺服器的金鑰指紋。如要驗證伺服器,請輸入管理員提供的金鑰指紋。或者,如果您信任該伺服器,請輸入 yes,將伺服器加入信任的伺服器清單。

檔案傳輸完成後,請輸入 exit,中斷與用戶端 VM 的連線。

PuTTY

  1. 連線至與 Private Service Connect 端點位於相同虛擬私有雲網路的用戶端 Compute Engine 執行個體或服務。

    舉例來說,如果您使用 Compute Engine 執行個體做為用戶端 VM,請使用 SSH 連線至用戶端 VM:

    gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID

    更改下列內容:

    • CLIENT_VM_NAME:用戶端 VM 的名稱
    • CLIENT_VM_ZONE:用戶端 VM 的可用區
    • PROJECT_ID:您的 Google Cloud 專案的專案 ID 或編號
  2. 使用 PuTTY 連線至 SFTP 伺服器:

    psftp -i ~/.ssh/KEY_PAIR_NAME.ppk USERNAME@IP_ADDRESS

    更改下列內容:

    • KEY_PAIR_NAME:安全殼層金鑰組的名稱,例如 sftp_user_key
    • USERNAME:你的 SFTP 使用者名稱
    • IP_ADDRESS:Private Service Connect 端點的 IP 位址

    如果這是您首次連線至伺服器,系統可能會顯示主機金鑰未快取的訊息。驗證管理員提供的金鑰指紋,並視需要將金鑰新增至快取。然後繼續連線。

後續步驟