このドキュメントでは、Cloud FTP ユーザーが SFTP サーバーへの接続に使用できる Secure Shell(SSH)鍵を更新する方法について説明します。
始める前に
サーバーへの接続に使用する各 SSH 鍵ペアからユーザーの公開鍵を取得します。ユーザーは最大 10 個の公開鍵を持つことができます。
SSH 認証鍵ペアがない場合は、次の手順で生成します。
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 ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、SFTP ユーザーの更新に必要な ftp.users.update 権限が含まれています。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
SFTP ユーザーの SSH 認証鍵を更新する
gcloud
SFTP ユーザーの SSH 認証鍵を更新するには、gcloud alpha storage ftp users update コマンドを実行します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- CREDENTIAL_NAME: ユーザー認証情報を識別する一意の名前。
- SSH_PUBLIC_KEY: OpenSSH 形式のユーザーの SSH 公開鍵の本文。例:
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 ユーザーの SSH 認証鍵を更新するには、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 公開鍵の本文。例:
ssh-rsa AAAAB3NzaC1ycRexample...
ユーザーに複数の公開鍵を構成するには、userCredentials リストに複数の認証情報を指定します。
HTTP メソッドと URL:
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"
}
]
}
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスは、長時間実行オペレーションを識別します。ユーザーの更新には数秒かかります。 <0