このドキュメントでは、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:ユーザーの SSH 公開鍵の本文(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 ユーザーの 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:ユーザーの SSH 公開鍵の本文(OpenSSH 形式)。例:
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"
}
]
}
リクエストを送信するには、次のいずれかのオプションを展開します。
レスポンスで 長時間実行オペレーションを識別できます。 ユーザーが更新されるまでに数秒かかります。クライアント ライブラリ
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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、 ローカル開発環境の認証の設定をご覧ください。