インスタンスへのファイルの転送

Compute Engine インスタンスにファイルを転送する場合、ワークステーションの OS とターゲット インスタンスの OS に基づいて各種オプションを使用できます。

転送元 転送先が Linux インスタンス 転送先が Windows インスタンス
Linux または macOS
Windows

Linux と Windows のインスタンスへのファイルの転送

Cloud Storage を使用すると、すべてのオペレーティング システム間でファイルを転送できます。

Cloud Storage を経由したファイルの転送

Google Cloud Storage バケットは、OS に関係のない、ユーザーとインスタンスの間の便利な中間転送ポイントとして機能します。

このファイル転送方式は、サービス アカウントまたは個人のユーザー認証情報を使用してインスタンスから Cloud Storage バケットにアクセスできる状況であれば、ほぼすべての種類のオペレーティング システムやインスタンスで使用できます。

まず自身のワークステーションから Cloud Storage バケットにファイルをアップロードします。次に、それらのファイルをバケットから自身のインスタンスへダウンロードします。

  1. Cloud Storage バケットを新規作成するか、ファイル転送に使用する既存のバケットを指定します。

  2. ワークステーションからバケットにファイルをアップロードします。

  3. SSH または RDP を介してインスタンスに接続します。

  4. インスタンス上で、バケットからファイルをダウンロードします。

逆方向にファイルを転送する必要がある場合は、上記のプロセスを逆方向に実行します。まずインスタンスからファイルをアップロードし、次にそれらのファイルをワークステーションへダウンロードします。

Linux インスタンスへのファイルの転送

ブラウザの SSH を使用したファイルの転送

ブラウザ ウィンドウから SSH を使用してインスタンスへの SSH 接続を確立できる場合は、その接続を使用してファイルをインスタンスに転送できます。

  1. GCP Console の [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. 仮想マシン インスタンスのリストで、接続するインスタンスの行の SSH をクリックします。

  3. 接続が確立したら、ブラウザ ウィンドウから SSH の右上にある歯車アイコンをクリックして、[ファイルをアップロード] を選択します。また、[ファイルをダウンロード] を選択すれば、インスタンスからファイルをダウンロードできます。
  4. 転送ダイアログ ウィンドウが開きます。転送するファイルを指定します。

アップロードされたファイルはユーザーの /home ディレクトリにあります。ダウンロードされたファイルは、ローカル ワークステーションのデフォルトのダウンロード フォルダにあります。

gcloud コマンドライン ツールを使用したファイルの転送

gcloud コマンドライン ツールには SCP ファイル転送ユーティリティが備わっています。このユーティリティは初回接続時に SSH 認証鍵ペアを作成します。秘密鍵はローカル デバイスに保存され、対応する公開鍵はプロジェクト メタデータまたはインスタンス メタデータにコピーされます。

SCP を使用してファイルを転送するには、インスタンスが使用するネットワーク上に、ポート 22 での SSH 接続を許可するファイアウォール ルールが必要です。こうした接続の許可に必要なファイアウォール ルールを設定する方法については、ファイアウォール ルールの使用をご覧ください。

gcloud ツールをインストールすると、scp コマンドを使用してインスタンスにファイルとディレクトリをコピーできます。

次の例では、ワークステーションからインスタンスのホーム ディレクトリにファイルをコピーします。

gcloud compute scp [LOCAL_FILE_PATH] [INSTANCE_NAME]:~

ここで:

  • [LOCAL_FILE_PATH] は、ワークステーション上のファイルへのパスです。
  • [INSTANCE_NAME] は、インスタンスの名前です。

ファイルやディレクトリをインスタンスからローカル ワークステーションにコピーすることもできます。次の例では、インスタンス(コピー元)からワークステーション(コピー先)にディレクトリを再帰的にコピーしています。

gcloud compute scp --recurse [INSTANCE_NAME]:[REMOTE_DIR] [LOCAL_DIR]

ここで:

  • [INSTANCE_NAME] はインスタンスの名前です。
  • [REMOTE_DIR] は、インスタンス上のディレクトリへのパスです。
  • [LOCAL_DIR] は、ワークステーション上のディレクトリを配置するパスです。

詳細については、gcloud compute scp のリファレンス ドキュメントをご覧ください。

Linux ワークステーションまたは macOS ワークステーションの SCP を使用したファイルの転送

SCP コマンドライン ツールは、gcloud compute scp と同様に動作しますが、SSH 認証鍵を手動で管理する必要があります。

SCP を使用してファイルを転送するには、インスタンスが使用するネットワーク上に、ポート 22 での SSH 接続を許可するファイアウォール ルールが必要です。こうした接続の許可に必要なファイアウォール ルールを設定する方法については、ファイアウォール ルールの使用をご覧ください。

scp ツールは、標準 SSH を使用してインスタンスに接続するときと同じ鍵ファイルを使用します。

  1. まだ公開鍵を GCP Console プロジェクトまたはインスタンスに適用していない場合は、SSH 認証鍵ペアを取得し、公開 SSH 認証鍵ファイルをプロジェクトまたはインスタンスに適用します。

  2. ファイルの転送先となるインスタンスの外部 IP を確認します。ブラウザで、インスタンスのリストに移動します。

    インスタンス ページに移動

  3. scp ツールを使用して、ワークステーションからターゲット インスタンスのホーム ディレクトリにファイルをコピーします。この例では、秘密鍵は ~/.ssh/my-ssh-key にあります。

    scp -i ~/.ssh/my-ssh-key [LOCAL_FILE_PATH] [USERNAME]@[IP_ADDRESS]:~
    

    ここで:

    • [USERNAME] は、ユーザー名です。
    • [LOCAL_FILE_PATH] は、アップロードするローカル ファイルの名前です。
    • [IP_ADDRESS] は、インスタンスの IP アドレスです。

ソースと転送先の変数を逆に並び替えることで、インスタンスからローカルのワークステーションにファイルをコピーすることもできます。この例では、インスタンスからワークステーションのパスにファイルをコピーします。

scp -i ~/.ssh/my-ssh-key [USERNAME]@[IP_ADDRESS]:[REMOTE_FILE_PATH] [LOCAL_FILE_PATH]

ここで:

  • [USERNAME] は、ユーザー名です。
  • [REMOTE_FILE_PATH] は、ダウンロードするリモート ファイルの名前です。
  • [IP_ADDRESS] は、インスタンスの IP アドレスです。
  • [LOCAL_FILE_PATH] は、ファイルをダウンロードする、ワークステーション上の場所です。

Windows ワークステーションの WinSCP を使用したファイルの転送

Windows ワークステーションでは、WinSCP クライアントにより、ファイル ブラウザのグラフィカル インターフェースを介してインスタンス上のファイルを管理できます。

WinSCP は、PuTTY を使用してインスタンスに接続するときと同じ鍵ファイルを使用します。

  1. まだ公開鍵を GCP Console プロジェクトまたはインスタンスに適用していない場合は、SSH 認証鍵ペアを取得し、公開 SSH 認証鍵ファイルをプロジェクトまたはインスタンスに適用します。

  2. WinSCP をダウンロードしてインストールします。多くの場合、デフォルトのインストール設定で問題なくインストールできます。

  3. WinSCP プログラムを起動します。ログイン ウィンドウが開き、接続設定を構成できます。

  4. ファイルの転送先となるインスタンスの外部 IP を確認します。ブラウザで、インスタンスのリストに移動します。

  5. WinSCP で、接続設定を構成します。

    1. [File protocol] フィールドを SCP に設定します。

    2. [Host Name] フィールドに、接続するインスタンスの外部 IP アドレスを入力します。

    3. [User name] フィールドに、プロジェクトへのアクセスに使用する Google ユーザー名を入力します。この例では、ユーザー名は example-user となっています。

      ファイル プロトコルを SCP に、ホスト名を 104.196.31.103 に、ユーザー名を example-user に設定。

  6. [Advanced] プルダウン メニューから詳細設定を開き、[SSH] > [Authentication] に移動します。

  7. [Private key file] フィールドに、秘密鍵ファイルのパスを指定します。この例では、鍵ファイルは my-ssh-key.ppk となっています。

    詳細サイト設定で、公開鍵ファイルを my-ssh-key.ppk に設定。

  8. [Ok] をクリックして、詳細設定を保存します。

  9. [Login] をクリックして、インスタンスに接続します。接続に成功するとウィンドウが開き、左側にローカルのファイル システムが、右側にインスタンスのファイル システムが表示されます。これらのファイル システムで他のディレクトリに移動でき、またファイルをドラッグしてインスタンスからファイルを転送できます。

  10. ほとんどの場合、ユーザーにはインスタンスのホーム ディレクトリ外のファイルを管理する権限はありません。その場合は、ユーザー用のホーム ディレクトリに移動してください。WinSCP のパスフィールドに、ホーム ディレクトリを入力します。

    /home/[USERNAME]
    

    ここでは、[USERNAME] がこのインスタンスのユーザー名になっています。

  11. WinSCP インターフェースを使用して、ワークステーションとインスタンスの間でファイルを移動します。

  12. インスタンスにファイルをコピーしたら、インスタンスに接続します。これで、完全な sudo 権限でファイルの実行や移動ができます。

Windows インスタンスへのファイルの転送

Windows RDP クライアントを介したファイルの転送

一部の RDP クライアントを使用すると、ローカル ドライブを含むローカル端末とリソースを、ワークステーションから接続先の Windows Server インスタンスに接続できます。これにより、RDP を介して接続されている間、ローカル ワークステーションのファイル システムをリモート リソースとして使用できるようになります。

例: Windows 2016 ワークステーションの場合

  1. RDP を開きます。
  2. [ローカル リソース] タブをクリックします。
  3. [ローカル デバイスとリソース] で、[詳細] をクリックします。
  4. [ドライブ] チェックボックスを選択します。リモート インスタンスへの接続を開くと、選択したローカル ドライブが Windows エクスプローラーから使用できるようになります。

詳細については、Microsoft リモート デスクトップ クライアントをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント