SFTP ユーザーの SSH 認証鍵を更新する

このドキュメントでは、Cloud FTP ユーザーが SFTP サーバーへの接続に使用できる Secure Shell(SSH)鍵を更新する方法について説明します。

始める前に

  • サーバーへの接続に使用する各 SSH 鍵ペアからユーザーの公開鍵を取得します。ユーザーは最大 10 個の公開鍵を持つことができます。

    SSH 認証鍵ペアがない場合は、次の手順で生成します。

    SSH 認証鍵ペアを生成する

    必要な鍵の形式をお知らせください。

    必要な鍵の形式は、SFTP サーバーへの接続に使用するクライアントによって異なります。詳細については、サポートされている 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 ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、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