更新 SFTP 使用者的安全殼層金鑰

本文說明如何更新 Cloud FTP 使用者可用於連線至 SFTP 伺服器的安全殼層 (SSH) 金鑰。

事前準備

  • 從使用者用來連線至伺服器的每個 SSH 金鑰組中,取得使用者的公開金鑰。使用者最多可有 10 個公開金鑰。

    如果使用者沒有安全殼層金鑰組,請按照下列步驟產生。

    產生安全殼層 (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

必要的角色

如要取得更新 SFTP 使用者所需的權限,請要求管理員在專案中授予您「FTP 管理員」(roles/ftp.admin) IAM 角色。 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備 ftp.users.update 權限,可更新 SFTP 使用者。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

更新 SFTP 使用者的安全殼層金鑰

gcloud

如要更新 SFTP 使用者的 SSH 金鑰,請執行 gcloud alpha storage ftp users update 指令。

使用下方的任何指令資料之前,請先替換以下項目:

  • CREDENTIAL_NAME:用於識別使用者憑證的專屬名稱。
  • SSH_PUBLIC_KEY:使用者安全殼層公開金鑰的主體,格式為 OpenSSH。例如 ssh-rsa AAAAB3NzaC1ycRexample...。
  • USERNAME:SFTP 使用者的使用者名稱。
  • LOCATION_ID:伺服器的位置,例如 us-west1。
  • SERVER_ID:伺服器 ID。

如要為使用者設定多個公開金鑰,請在 credentials.json 檔案中提供多個憑證。

將下列內容儲存到名為 credentials.json 的檔案:

[
  {
    "credentialName": "CREDENTIAL_NAME",
    "credentialType": "PUBLIC_KEY",
    "sshPublicKeyBody": "SSH_PUBLIC_KEY"
  }
]

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows (PowerShell)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID `
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows (cmd.exe)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^
    --server=SERVER_ID --user-credentials-from-file=credentials.json
系統需要幾秒鐘的時間才能更新使用者。

REST

如要更新安全檔案傳輸通訊協定使用者的安全殼層金鑰,請使用 servers.users.patch 方法。在 updateMask 查詢參數中,提供 userCredentials 欄位。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:伺服器的 Google Cloud 專案 ID。
  • LOCATION_ID:伺服器的位置,例如 us-west1。
  • SERVER_ID:伺服器 ID。
  • USERNAME:SFTP 使用者的使用者名稱。
  • CREDENTIAL_NAME:用於識別使用者憑證的專屬名稱。
  • SSH_PUBLIC_KEY:使用者安全殼層公開金鑰的主體,格式為 OpenSSH。例如 ssh-rsa AAAAB3NzaC1ycRexample...。

如要為使用者設定多個公開金鑰,請在 userCredentials 清單中提供多個憑證。

HTTP 方法和網址:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials

JSON 要求主體:

{
  "userCredentials": [
    {
      "credentialName": "CREDENTIAL_NAME",
      "credentialType": "PUBLIC_KEY",
      "sshPublicKeyBody": "SSH_PUBLIC_KEY"
    }
  ]
}

請展開以下其中一個選項,以傳送要求:

回應會識別長時間執行的作業。 系統需要幾秒鐘的時間才能更新使用者。 <