このドキュメントでは、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 サーバーに初めて接続する前に、次の手順を完了します。
サーバーの認証に使用する 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
公開鍵を Cloud FTP 管理者に提供します。管理者は、SFTP ユーザー アカウントを作成し、サーバーに追加します。
-
Cloud FTP 管理者に、サーバーへの接続に必要な次の情報を問い合わせます。
- サーバーのサービス アタッチメントの URI。
- SFTP ユーザー名。
- (省略可)サーバーの鍵のフィンガープリント。
Private Service Connect エンドポイントを作成する手順に沿って操作します。 次の情報を入力します。
- [ターゲット] で [公開済みのサービス] を選択します。
- [**ターゲット サービス**] に、サービス アタッチメントの URI を入力します。サービス
アタッチメント URI の形式は
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAMEです。 - [**名前**] に、エンドポイントの名前を入力します。サービス アタッチメント URI の
SERVICE_PROJECTと同じ値を使用します。 - [**ネットワーク**] に、エンドポイントの VPC ネットワークを入力します。
- [**サブネットワーク**] に、エンドポイントのサブネットワークを入力します。
- [**IP アドレス**] に、エンドポイントの IP アドレスを作成します。
- サービス アタッチメントとは異なるリージョンにクライアント VM を作成する場合は、[グローバル アクセスを有効にする] を選択します。
エンドポイントの IP アドレスをメモします。
エンドポイントと同じネットワークで、Compute Engine インスタンスやサービスなどのクライアントを構成して、インスタンスまたはサービスがエンドポイントのプライベート IP アドレスに接続できるようにします。
たとえば、Compute Engine インスタンスをクライアント VM として使用するには、次の操作を行います。
Compute Engine インスタンスが存在しない場合は、手順に沿って 作成します。 次の情報を入力します。
- [Region]: エンドポイントの作成時にグローバル アクセスを有効にしなかった場合は、SFTP サーバーのサービス アタッチメントと同じリージョンを選択します。
- [**ネットワーク インターフェース**] に、エンドポイントと同じ VPC ネットワークと サブネットワークを選択します。
クライアント VM の名前とゾーンをメモします。
秘密鍵をクライアント 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
-
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
-
OpenSSH を使用して SFTP サーバーに接続します。
sftp -i ~/.ssh/KEY_PAIR_NAME USERNAME@IP_ADDRESS
次のように置き換えます。
KEY_PAIR_NAME: SSH 認証鍵ペアの名前( など)sftp_user_keyUSERNAME: SFTP ユーザー名IP_ADDRESS: Private Service Connect エンドポイントの IP アドレス
サーバーに初めて接続する場合は、
The authenticity of host 'HOSTNAME (IP_ADDRESS)' can't be established, のようなメッセージと、サーバーの鍵のフィンガープリントが表示されることがあります。サーバーを確認するには、管理者から提供された鍵のフィンガープリントを入力します。または、サーバーを信頼する場合は、yesと入力して、信頼できるサーバーのリストにサーバーを追加します。
ファイルの転送が完了したら、「exit」と入力してクライアント VM から切断します。
PuTTY
-
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
-
PuTTY を使用して SFTP サーバーに接続します。
psftp -i ~/.ssh/KEY_PAIR_NAME.ppk USERNAME@IP_ADDRESS
次のように置き換えます。
KEY_PAIR_NAME: SSH 認証鍵ペアの名前( など)sftp_user_keyUSERNAME: SFTP ユーザー名IP_ADDRESS: Private Service Connect エンドポイントの IP アドレス
サーバーに初めて接続する場合は、ホストキー がキャッシュに保存されていないというメッセージが表示されることがあります。管理者から提供された鍵のフィンガープリントを確認し、必要に応じて鍵をキャッシュに追加します。その後、接続を続行します。