インスタンスへの接続

このページでは、Compute Engine で実行されている Linux インスタンスと Windows インスタンスに接続する基本的な方法について説明します。

Linux インスタンスへの接続

接続する前に、次の注意事項を確認してください。

  • VM インスタンスに SSH 経由でアクセスできる必要があります。デフォルトでは、Compute Engine はポート 22 経由で TCP 接続を許可するファイアウォール ルールを作成します。このルールが作成されているかどうか確認するには、Google Cloud Console で [ファイアウォール ルール] ページに移動し、tcp:22 接続を許可するファイアウォール ルールを探します。

  • 必要であれば、Linux インスタンスのゲスト属性としてホストキーを保存し、セキュリティ レイヤを追加することもできます。詳しくは、ホストキーの保存をご覧ください。

インスタンスに接続するその他の方法については、次のリンクをご覧ください。

Google Cloud Console または gcloud SDK のコマンドライン ツールを使用して Linux インスタンスに接続するには、以下のいずれかのタブに示されている手順を実行します。

基本的な SSH オプションでうまくいかない場合は、サードパーティ製ツールを使用してインスタンスに接続するか、外部 IP アドレスを持たないインスタンスに接続します。

Console

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

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

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

    インスタンス名の横にある SSH ボタン。

gcloud

gcloud compute ssh コマンドを使用して、アクセス権限を持つインスタンスに接続します。

gcloud compute ssh --project PROJECT_ID --zone ZONE VM_NAME

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

  • PROJECT_ID: インスタンスが含まれているプロジェクトの ID
  • ZONE: インスタンスが存在するゾーンの名前
  • VM_NAME: インスタンスの名前

gcloud コマンドライン ツールにデフォルトのプロパティを設定した場合は、このコマンドから --project フラグと --zone フラグを省略できます。例:

gcloud compute ssh VM_NAME

接続に成功したら、ターミナルを使用して Linux インスタンスでコマンドを実行します。終了したら、exit コマンドを使用してインスタンスから切断します。

SSH 認証鍵の保存場所

初めて VM インスタンスに接続すると、Compute Engine によって SSH 認証鍵ペアが生成され、次のいずれかの場所に保存されます。

  • デフォルトでは、生成された鍵はプロジェクトまたはインスタンス メタデータに追加されます。
  • OS Login を使用するようにアカウントを構成している場合、生成された鍵はユーザー アカウントとともに保存されます。

このドキュメントで説明している方法で接続する場合、SSH 認証鍵の保存場所を知っている必要はありませんが、高度な方法によるインスタンスへの接続に記載されている代替方法または高度な方法で接続する場合は、SSH 認証鍵の保存場所をあらかじめ確認しておく必要があります。

ホストキーの保存

ホストキーとは、特定のホストまたはマシンを識別するキーペアのことです。ホストキーは、リモートホストに接続する際に、目的のマシンに接続していることを確認するために使用されます。

gcloud compute ssh を使用して Linux インスタンスに接続している場合は、ホストキーをゲスト属性として保存することでセキュリティのレイヤを追加できます。

SSH ホストキーをゲスト属性として保存すると、中間者(MITM)攻撃などの脆弱性から保護できるため、接続のセキュリティが向上します。ゲスト属性が有効になっている場合、VM インスタンスの初回起動時に Compute Engine は生成されたホストキーをゲスト属性として保存します。その後、初回起動時に保存されたホストキーを使用して、VM インスタンスへの以降の接続をすべて検証します。

サポートされているオペレーティング システム

ホストキーは、次のオペレーティング システムのゲスト属性として保存できます。

  • Debian
  • Ubuntu
  • Red Hat Enterprise Linux(RHEL)
  • CentOS
  • SUSE Linux Enterprise Server(SLES)

ゲスト属性にホストキーを書き込むには、VM インスタンスを初めて起動する前にゲスト属性を有効にする必要があります。

ホストキーをゲスト属性として保存するには、次の手順を行います。

  1. VM インスタンスを初回起動する前に、ゲスト属性を有効にします。インスタンスの作成時に選択した VM インスタンスまたはプロジェクト全体でゲスト属性を有効にできます。ゲスト属性を有効にするには、インスタンスでゲスト属性を有効にするをご覧ください。
  2. gcloud compute ssh を使用してインスタンスに接続します。

    1. gcloud コマンドライン ツールの最新バージョンがあることを確認します。

      gcloud components update
      
    2. インスタンスに接続します。

      gcloud compute ssh --project PROJECT_ID --zone ZONE VM_NAME
      

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

      • PROJECT_ID: インスタンスが含まれているプロジェクトの ID
      • ZONE: インスタンスが存在するゾーンの名前
      • VM_NAME: インスタンスの名前

      gcloud コマンドライン ツールにデフォルトのプロパティを設定した場合は、このコマンドから --project フラグと --zone フラグを省略できます。例:

      gcloud compute ssh VM_NAME
      
    3. 起動メッセージを確認します。たとえば、Debian オペレーティング システムでは次のメッセージが表示される場合があります。

      Writing 3 keys to YOUR_HOME_DIRECTORY/.ssh/google_compute_known_hosts
      Linux host-key-2 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64
  3. ホストキーが保存されていることを確認します

ホストキーがゲスト属性として保存されていることを確認する

ホストキーがゲスト属性として保存されていることを確認するには、インスタンスのシリアルポートまたはホストキーの値を確認します。

オプション 1: シリアルポートの確認

  1. シリアルポート出力にアクセスします。シリアルポート出力の表示をご覧ください。
  2. [シリアルポート 1] を選択します。
  3. 次のメッセージを検索します。

    INFO Wrote ssh-rsa host key to guest attributes
    

    サポートされているオペレーティング システムをイメージで使用しているにもかかわらず、VM の初回起動前にゲスト属性が有効になっていない場合、次のメッセージが表示される場合があります。

    Unable to write ssh-rsa host key to guest attributes
    

    このメッセージは、ホストキーがインスタンスのゲスト属性として保存されていないことを示しています。作成を予定している追加インスタンスのホストキーを保存するには、インスタンスの初回起動前にゲスト属性を有効にしてください。

オプション 2: ホストキー値の確認

gcloud コマンドライン ツールを使用して、SSH 認証鍵がゲスト属性に書き込まれていることを確認できます。

 gcloud compute instances get-guest-attributes VM_NAME --query-path "hostkeys/" --zone ZONE

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

  • VM_NAME: インスタンスの名前
  • ZONE: インスタンスが存在するゾーンの名前

出力は次のようになります。

NAMESPACE  KEY                  VALUE
hostkeys   ecdsa-sha2-nistp256  AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBJAGpTm
                                V3mFxBTHK1NIu9a7kVQWaHsZVaFUsqF8cLxQRQ+N96/Djiiuz1tucHQ8vBTJI=
hostkeys   ssh-ed25519          AAAAC3NzaC1lZDI1NTE5AAAAIM/WYBn3jIEW5t3BZumx0X/Htm61J6S9FcU8L
hostkeys   ssh-rsa              AAAAB3NzaC1yc2EAAAADAQABAAABAQDU3jReR/MoSttlWYfauW6qEqS2dhe5
                                Zdd3guYk2H7ZyxblNuP56nOl/IMuniVmsFa9v8W6MExViu6G5Cy4iIesot09
                                1hsgkG0U7sbWrXM10PQ8pnpI3B5arplCiEMhRtXy64rlW3Nx156bLdcxv5l+
                                7Unu4IviKlY43uqqwSyTv+V8q4ThpQ9dNbk1Gg838+KzazljzHahtbIaE1rm
                                I0L1lUqKiKLSLKuBgrI2Y/WSuqvqGEz+bMH7Ri4ht+7sAwykph6FbOgKqoBI
                                hVWBo38/Na/gEuvtmgULUwK+xy9zWg9k8k/Qtihc6El9GD9y

Windows インスタンスへの接続

Compute Engine では、複数の方法で Windows インスタンスに接続できます。

リモート デスクトップ

Windows インスタンスのリモート デスクトップに接続する最適な方法は、いくつかの要因によって異なります。

  • VM インスタンスにパブリック IP アドレスがあり、ファイアウォール ルールで RDP アクセスが許可されている場合は、Chrome RDP for Google Cloud ブラウザ プラグインを使用するか、Microsoft リモート デスクトップ接続アプリなどのネイティブ RDP クライアントを使用します。
  • VM インスタンスにパブリック IP がなく、Cloud VPN または Cloud Interconnect を使用して接続している場合は、Microsoft リモート デスクトップ接続アプリなどのネイティブ RDP クライアントを使用して VM のプライベート IP アドレスに接続できます。
  • 任意の場所から接続する場合は、プロジェクトで Identity-Aware Proxy TCP 転送を有効にすることをおすすめします。次に、IAP Desktop(Windows の場合)を使用するか、gcloud をネイティブ RDP クライアントと一緒に使用して、Windows インスタンスに接続します。
  • Identity-Aware Proxy TCP 転送を使用できない場合は、Chrome リモート デスクトップを使用します。

Windows インスタンスへの接続

IAP Desktop

IAP Desktop は、Windows VM インスタンスに対する複数のリモート デスクトップ接続を管理できる Windows アプリケーションです。IAP Desktop は、Identity-Aware Proxy TCP 転送を使用して VM インスタンスに接続します。VM インスタンスにパブリック IP アドレスは必要ありません。

IAP Desktop を使用して接続する前に、次の前提条件を満たしていることを確認してください。

IAP Desktop を使用して VM インスタンスに接続するには、次の操作を行います。

  1. IAP Desktop で、[File] > [Add Google Cloud project] の順に選択します。

  2. プロジェクトの ID または名前を入力して、[OK] をクリックします。

  3. [Project Explorer] ウィンドウで、接続する VM インスタンスを右クリックして、[Connect] を選択します。

IAP Desktop。

IAP Desktop の詳細については、GitHub プロジェクトのページをご覧ください。

リモート デスクトップ接続アプリ

Windows の一部である Microsoft リモート デスクトップ接続アプリを使用して、Windows インスタンスに接続できます。

Microsoft リモート デスクトップ接続アプリで接続する前に、次のいずれかの前提条件を満たしていることを確認します。

  • VM インスタンスにパブリック IP アドレスが設定されており、ファイアウォール ルールで、ポート 3389 を使用して、クライアントのパブリック IP アドレスからインスタンスへの TCP の上り(内向き)トラフィックを許可している。
  • ローカル ネットワークが VPN または Cloud Interconnect を通じて VPC に接続されており、ファイアウォール ルールで、ポート 3389 を使用して、クライアントのパブリック IP アドレスからインスタンスへの TCP の上り(内向き)トラフィックを許可している。

Microsoft Windows リモート デスクトップで接続するには、次の手順に従います。

  1. まだ作成していない場合は、Windows アカウントとパスワードを作成します。

  2. Google Cloud Console で、[VM インスタンス] ページから Windows インスタンスの IP アドレスを特定します。

    [VM インスタンス] に移動

    または、gcloud コマンドライン ツールで gcloudinstances list コマンドを実行して IP アドレスを見つけます。

    gcloud compute instances list
    
    • インターネット経由で接続するには、外部 IP アドレスを使用します。
    • VPN または Cloud Interconnect を使用して接続するには、内部 IP アドレスを使用します。
  1. Windows マシン上で Microsoft Windows リモート デスクトップ接続を開きます。mstsc 接続ウィンドウ。 {:class="screenshot"} 注: 実行可能ファイルは %systemroot%\system32\mstsc.exe にあります。
    1. [コンピューター] に IP アドレスを入力します。[接続] をクリックします。

    2. ユーザー名とパスワードを入力します。次に、[OK] をクリックして接続します。

Chrome リモート デスクトップ

Chrome リモート デスクトップは、ウェブブラウザを使用して別のパソコンにリモートからアクセスできるサービスです。Chrome リモートデスクトップは Windows、macOS、Linux で動作します。VM インスタンスにパブリック IP アドレスは必要ありません。

Chrome リモート デスクトップで接続する前に、次の前提条件を満たしていることを確認してください。

Chrome リモート デスクトップを使用して VM インスタンスに接続するには、次の操作を行います。

  1. ローカルのパソコンから Chrome リモート デスクトップのウェブサイトにアクセスします。

  2. まだ Google にログインしていない場合は、Chrome リモート デスクトップ サービスの設定で使用した Google アカウントでログインします。

  3. 接続するインスタンスを選択します。

  4. メッセージが表示されたら、Chrome リモート デスクトップ サービスのインストール時に作成した PIN を入力し、矢印 ボタンをクリックして接続します。

Chrome RDP プラグイン

Chrome RDP for Google Cloud はサードパーティ製のプラグインで、Chrome ブラウザから Windows インスタンスに接続できます。このプラグインは Google Cloud Console と統合されています。プラグインをインストールしたら、Cloud Console で [RDP] ボタンを使用して Windows Server インスタンスに接続します。

Chrome RDP for Google Cloud で接続する前に、次の前提条件を満たしていることを確認してください。

  • VM インスタンスにパブリック IP アドレスが設定されている。
  • ファイアウォール ルールで、ポート 3389 を使用して、クライアントのパブリック IP アドレスからインスタンスへの TCP の上り(内向き)トラフィックを許可している。
  • Chrome RDP for Google Cloud 拡張機能がインストールされている。

  • Chrome OS から Windows VM に接続する場合は、Chromebook の [表示サイズ] を 100% に設定します。

Chrome RDP プラグインを使用して接続するには、次の操作を行います。

  1. Cloud Console で [VM インスタンス] ページに移動し、接続する Windows インスタンスを探します。

    [VM インスタンス] に移動

  2. 接続したいインスタンスの [RDP] ボタンをクリックします。Chrome RDP 拡張機能が開きます。

  3. ドメイン、ユーザー名、パスワードを入力し、[OK] をクリックして接続します。

    必要なオプションが設定された状態のインスタンス作成ウィンドウ。

    インスタンスにドメインが構成されていない場合は、[ドメイン] を空白のままにできます。

  4. プロンプトが表示されたら、[続行] を押して証明書を受け入れます。

その他

Android、iOS、Mac 向けに開発されたクライアントなど、他の RDP クライアントを使用して、Windows VM インスタンスに接続できます。

接続する前に、次の前提条件のいずれかを満たしていることを確認してください。

  • VM インスタンスにパブリック IP アドレスが設定されており、ファイアウォール ルールで、ポート 3389 を使用して、クライアントのパブリック IP アドレスからインスタンスへの TCP の上り(内向き)トラフィックを許可している。
  • ローカル ネットワークが VPN または Cloud Interconnect を通じて VPC に接続されており、ファイアウォール ルールで、ポート 3389 を使用して、クライアントのプライベート IP アドレスからインスタンスへの TCP の上り(内向き)トラフィックを許可している。

他の RDP を使用して接続するには、次の手順に従います。

  1. Google Cloud Console で [VM インスタンス] ページに移動し、Windows インスタンスの IP アドレスを確認します。

    • インターネット経由で接続するには、外部 IP アドレスを使用します。
    • VPN または Cloud Interconnect を使用して接続するには、内部 IP アドレスを使用します。

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

    または、gcloud コマンドライン ツールで gcloudinstances list コマンドを実行して IP アドレスを見つけます。

    gcloud compute instances list
    
  2. クライアントのインストール手順に従って、サポートされているクライアントをインストールします。

  3. インスタンスの IP アドレスを使用して接続し、インスタンスのユーザー名とパスワードで認証します。

公式にサポートされているクライアントの一覧については、Microsoft のリモート デスクトップ クライアントをご覧ください。

RDP で接続できない場合は、RDP のトラブルシューティングをご覧ください。

Special Administrative Console

このセクションでは、インタラクティブ シリアル コンソールを使用して、Windows インスタンスの Special Administrative Console(SAC)に接続する方法について説明します。リモート デスクトップを使用して Windows インスタンスに接続できない場合は、SAC を使用して Windows インスタンスのトラブルシューティングを行うことができます。

接続する前に、Windows インスタンスのパスワードを作成して準備しておく必要があります。

インタラクティブ シリアル コンソールを使用して Windows インスタンスに接続するには、次のいずれかのタブに示されている手順を実行します。

Console

Cloud Console からインタラクティブ シリアル コンソールを使用して Windows インスタンスに接続するには、次の操作を行います。

  1. Cloud Console で [VM インスタンス] ページに移動し、インスタンスの名前をクリックします。[VM インスタンスの詳細] ページが開きます。

    [VM インスタンス] に移動

  2. [編集] をクリックします。[リモート アクセス] セクションで、[シリアルポート接続を有効化] を選択します。これにより、このインスタンスのインタラクティブ シリアル コンソールが有効になります。

    編集インスタンスの詳細画面の設定。

    プロジェクト内のすべてのインスタンスにこの設定を適用する場合は、代わりにプロジェクト全体のカスタム メタデータを設定します。

    インスタンス メタデータの更新について詳しくは、インスタンス メタデータの格納と取得をご覧ください。

  3. [保存] をクリックし、ページの先頭に戻ります。

  4. [リモート アクセス] で、[シリアル コンソールに接続] の横にあるプルダウンをクリックし、[シリアルポート 2] を選択します。Windows Special Administrative Console(SAC)が開きます。

  5. SAC> プロンプトで、cmd を実行して新しいチャネルを作成します。SAC によって、Cmd001 などのチャネル名が返されます。

  6. ch -sn CHANNEL_NAME を実行し、任意のキーを押してチャネルに接続します。例:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 接続するインスタンスのユーザー名、ドメイン、パスワードを入力します。

gcloud

gcloud コマンドライン ツールでインタラクティブ シリアル コンソールを使用して Windows インスタンスに接続するには、次の手順を実行します。

  1. ローカル オペレーティング システム用の Cloud SDK をまだダウンロードしていない場合は、ダウンロードしてインストールします。Cloud SDK のインストールをご覧ください。

  2. Cloud SDK を起動します。

  3. 次のコマンドを実行して、シリアルポートへの接続を有効にするようにインスタンスを構成します。

    gcloud compute instances add-metadata VM_NAME \
    --zone ZONE \
    --metadata=serial-port-enable=1
    

    省略可: プロジェクトのすべてのインスタンスに設定を適用する場合は、代わりに次の Cloud SDK コマンドを実行します。

    gcloud compute project-info add-metadata
    --metadata=serial-port-enable=1
    

    プロジェクト全体のカスタム メタデータについて詳しくは、プロジェクト全体のカスタム メタデータの設定をご覧ください。

    メタデータの更新について詳しくは、インスタンス メタデータの更新をご覧ください。

  4. 次の gcloud コマンドを実行して、インタラクティブ セッションに入ります。

    gcloud compute connect-to-serial-port VM_NAME --port=2
    

    SAC インタラクティブ セッション。

  5. SAC> プロンプトで、cmd を実行して新しいチャネルを作成します。SAC によって、Cmd001 などのチャネル名が返されます。

  6. ch -sn CHANNEL_NAME を実行し、任意のキーを押してチャネルに接続します。例:

    SAC> cmd
    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC> ch -sn cmd0001
    Press any key to confirm connection to the channel.
    
  7. 接続するインスタンスのユーザー名、ドメイン、パスワードを入力します。

次のステップ