本文說明如何更新 Cloud FTP 使用者可用於連線至 SFTP 伺服器的安全殼層 (SSH) 金鑰。
事前準備
從使用者用來連線至伺服器的每個安全殼層金鑰組中,取得使用者的公開金鑰。使用者最多可有 10 個公開金鑰。
如果使用者沒有安全殼層金鑰組,請按照下列步驟產生。
產生安全殼層 (SSH) 金鑰組
您需要哪種金鑰格式?
您需要的金鑰格式取決於您用來連線至 SFTP 伺服器的用戶端。詳情請參閱「支援的 SFTP 用戶端」。
PEM 格式
-
如要建立 OpenSSH 金鑰組 (PEM 格式),請使用
ssh-keygen公用程式。在要連線至 SFTP 伺服器的用戶端機器上,執行下列指令:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME
將
KEY_PAIR_NAME替換為金鑰組的名稱,例如sftp_user_key。 -
擷取公開金鑰:
cat ~/.ssh/KEY_PAIR_NAME.pub
PPK 格式
-
如要建立 PuTTY 金鑰組 (PPK 格式),請使用
PuTTYgen工具。在要連線至 SFTP 伺服器的用戶端機器上,執行下列指令:
puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk
將
KEY_PAIR_NAME替換為金鑰組的名稱,例如sftp_user_key。 -
擷取公開金鑰:
puttygen -L KEY_PAIR_NAME.ppk
-
必要的角色
如要取得更新 SFTP 使用者所需的權限,請要求管理員授予您專案的「FTP 管理員」 (roles/ftp.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 ftp.users.update 權限,可更新 SFTP 使用者。
更新 SFTP 使用者的安全殼層金鑰
gcloud
如要更新 SFTP 使用者的安全殼層金鑰,請執行 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
如要更新 SFTP 使用者的安全殼層金鑰,請使用 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"
}
]
}
請展開以下其中一個選項,以傳送要求:
回應會識別長時間執行的作業。 系統會在幾秒內更新使用者。用戶端程式庫
C#
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP C# API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Go API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱「Cloud FTP Java API 參考文件」。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Node.js API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP PHP API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Python API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Cloud FTP 的用戶端程式庫,請參閱「Cloud FTP 用戶端程式庫」。詳情請參閱 Cloud FTP Ruby API 參考文件。
如要向 Cloud FTP 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證機制」。