内部 SFTP サーバーに接続する

このドキュメントでは、Cloud FTP の内部 SFTP サーバーに接続する方法について説明します。SFTP サーバーを使用すると、Cloud Storage との間でファイルを安全に転送できます。標準の SFTP コマンドと SFTP クライアントを使用して、Cloud Storage バケット内のデータをアップロードまたはダウンロードできます。

内部サーバーには、Private Service Connect を使用して、Virtual Private Cloud(VPC)ネットワーク内からのみアクセスできます。背景情報については、 VPC の概要Private Service Connect の概要をご覧ください。

始める前に

次のセクションで前提条件を満たしてください。

VPC ネットワークを構成する

このドキュメントでは、VPC ネットワークがあることを前提としています。 VPC ネットワークを作成する手順については、VPC ネットワークの作成と管理 をご覧ください

Private Service Connect エンドポイントのプライベート IP アドレスには、エンドポイントと同じネットワーク内の Compute Engine インスタンスまたはサービスから接続できます。これらの接続を許可するようにネットワークを構成する必要がある場合があります。たとえば、Compute Engine クライアント VM を使用してエンドポイントに接続する場合は、VM インスタンスへの上り(内向き)SSH 接続を許可するファイアウォール ルールを追加します。

Private Service Connect エンドポイントを構成する

内部 SFTP サーバーに初めて接続する前に、次の手順を完了します。

  1. サーバーの認証に使用する 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

    公開鍵を Cloud FTP 管理者に提供します。管理者は、SFTP ユーザー アカウントを作成し、サーバーに追加します。

  2. Cloud FTP 管理者に、サーバーへの接続に必要な次の情報を問い合わせます。

    • サーバーのサービス アタッチメントの URI。
    • SFTP ユーザー名。
    • (省略可)サーバーの鍵のフィンガープリント。
  3. Private Service Connect エンドポイントを作成する手順に沿って操作します。 次の情報を入力します。

    • [ターゲット] で [公開済みのサービス] を選択します。
    • [**ターゲット サービス**] に、サービス アタッチメントの URI を入力します。サービス アタッチメント URI の形式は projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME です。
    • [**名前**] に、エンドポイントの名前を入力します。サービス アタッチメント URI の SERVICE_PROJECT と同じ値を使用します。
    • [**ネットワーク**] に、エンドポイントの VPC ネットワークを入力します。
    • [**サブネットワーク**] に、エンドポイントのサブネットワークを入力します。
    • [**IP アドレス**] に、エンドポイントの IP アドレスを作成します。
    • サービス アタッチメントとは異なるリージョンにクライアント VM を作成する場合は、[グローバル アクセスを有効にする] を選択します。

    エンドポイントの IP アドレスをメモします。

  4. エンドポイントと同じネットワークで、Compute Engine インスタンスやサービスなどのクライアントを構成して、インスタンスまたはサービスがエンドポイントのプライベート IP アドレスに接続できるようにします。

    たとえば、Compute Engine インスタンスをクライアント VM として使用するには、次の操作を行います。

    1. Compute Engine インスタンスが存在しない場合は、手順に沿って 作成します。 次の情報を入力します。

      • [Region]: エンドポイントの作成時にグローバル アクセスを有効にしなかった場合は、SFTP サーバーのサービス アタッチメントと同じリージョンを選択します。
      • [**ネットワーク インターフェース**] に、エンドポイントと同じ VPC ネットワークと サブネットワークを選択します。

      クライアント VM の名前とゾーンをメモします。

    2. 秘密鍵をクライアント VM に転送します。

      gcloud compute scp ~/.ssh/KEY_PAIR_NAME CLIENT_VM_NAME:~/.ssh/KEY_PAIR_NAME \
      --zone=CLIENT_VM_ZONE --project=PROJECT_ID

      次のように置き換えます。

      • CLIENT_VM_NAME: クライアント VM の名前。
      • CLIENT_VM_ZONE: クライアント VM のゾーン。
      • PROJECT_ID: プロジェクトのプロジェクト ID または番号Google Cloud 。

内部 SFTP サーバーに接続する

OpenSSH

  1. Private Service Connect エンドポイントと同じ VPC ネットワーク内のクライアント Compute Engine インスタンスまたはサービスに接続します。

    たとえば、Compute Engine インスタンスをクライアント VM として使用している場合は、SSH を使用してクライアント VM に接続します。

    gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID

    次のように置き換えます。

    • CLIENT_VM_NAME: クライアント VM の名前
    • CLIENT_VM_ZONE: クライアント VM のゾーン
    • PROJECT_ID: プロジェクトのプロジェクト ID または番号 Google Cloud
  2. OpenSSH を使用して SFTP サーバーに接続します。

    sftp -i ~/.ssh/KEY_PAIR_NAME USERNAME@IP_ADDRESS

    次のように置き換えます。

    • KEY_PAIR_NAME: SSH 認証鍵ペアの名前( など)sftp_user_key
    • USERNAME: SFTP ユーザー名
    • IP_ADDRESS: Private Service Connect エンドポイントの IP アドレス

    サーバーに初めて接続する場合は、 The authenticity of host 'HOSTNAME (IP_ADDRESS)' can't be established, のようなメッセージと、サーバーの鍵のフィンガープリントが表示されることがあります。サーバーを確認するには、管理者から提供された鍵のフィンガープリントを入力します。または、サーバーを信頼する場合は、yesと入力して、信頼できるサーバーのリストにサーバーを追加します。

ファイルの転送が完了したら、「exit」と入力してクライアント VM から切断します。

PuTTY

  1. Private Service Connect エンドポイントと同じ VPC ネットワーク内のクライアント Compute Engine インスタンスまたはサービスに接続します。

    たとえば、Compute Engine インスタンスをクライアント VM として使用している場合は、SSH を使用してクライアント VM に接続します。

    gcloud compute ssh CLIENT_VM_NAME --zone=CLIENT_VM_ZONE --project=PROJECT_ID

    次のように置き換えます。

    • CLIENT_VM_NAME: クライアント VM の名前
    • CLIENT_VM_ZONE: クライアント VM のゾーン
    • PROJECT_ID: プロジェクトのプロジェクト ID または番号 Google Cloud
  2. PuTTY を使用して SFTP サーバーに接続します。

    psftp -i ~/.ssh/KEY_PAIR_NAME.ppk USERNAME@IP_ADDRESS

    次のように置き換えます。

    • KEY_PAIR_NAME: SSH 認証鍵ペアの名前( など)sftp_user_key
    • USERNAME: SFTP ユーザー名
    • IP_ADDRESS: Private Service Connect エンドポイントの IP アドレス

    サーバーに初めて接続する場合は、ホストキー がキャッシュに保存されていないというメッセージが表示されることがあります。管理者から提供された鍵のフィンガープリントを確認し、必要に応じて鍵をキャッシュに追加します。その後、接続を続行します。

次のステップ