インスタンスへの接続

このページでは、Compute Engine Linux インスタンスおよび Compute Engine Windows インスタンスに接続するための一般的な方法について説明します。

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

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

Linux インスタンスへの接続

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

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

Console

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

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

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

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

gcloud

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

gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]

ここで

  • [PROJECT_ID] は、インスタンスが含まれているプロジェクトの ID です。
  • [ZONE] は、インスタンスが存在するゾーンの名前です。
  • [INSTANCE_NAME] は、インスタンスの名前です。

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

gcloud compute ssh [INSTANCE_NAME]

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

SSH 認証鍵の保存場所

最初に接続した際、各ユーザーの SSH 認証鍵ペアが Compute Engine によって自動的に生成され、次のいずれかの場所に保存されます。

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

このドキュメントで説明されている方法で接続する場合は 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 インスタンスの初回起動時にのみ行うことができます。ホストキーをゲスト属性に書き込むには、VM インスタンスの初回起動の前にゲスト属性を有効にする必要があります。

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

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

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

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

      gcloud compute ssh --project [PROJECT_ID] --zone [ZONE] [INSTANCE_NAME]
      

      ここで

      • [PROJECT_ID] は、インスタンスが含まれているプロジェクトの ID です。
      • [ZONE] は、インスタンスが存在するゾーンの名前です。
      • [INSTANCE_NAME] は、インスタンスの名前です。

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

      gcloud compute ssh [INSTANCE_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 [INSTANCE_NAME] --query-path "hostkeys/" --zone [ZONE]

ここで

  • [ZONE] は、インスタンスが存在するゾーンの名前です。
  • [INSTANCE_NAME] は、インスタンスの名前です。

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

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 インスタンスへの接続

Windows インスタンスに接続するには、Google Cloud Console のリモート デスクトップ プロトコル(RDP)またはグラフィカル ユーザー インターフェースを使用します。

リモート デスクトップ

接続する前に Windows インスタンス パスワードを作成しているか確認し、次の手順の中で入力できるようにしてください。

Chrome リモート デスクトップ

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

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

Chrome リモート デスクトップを使用して接続するには、次の手順に従います。

  1. Chrome RDP for GCP またはリモート デスクトップを使用してインスタンスに接続します(手順については、他のタブをご覧ください)。

  2. VM で Chrome をダウンロードしてインストールします。

  3. Chrome リモート デスクトップをダウンロードしてインストールします。

  4. 拡張機能の指示に沿って、VM インスタンスをホストとして設定します。

  5. インスタンスから切断します。

  6. Chrome リモート デスクトップを使用して VM インスタンスに接続するマシンで、Chrome リモート デスクトップをダウンロードしてインストールします。

  7. Chrome リモート デスクトップのインストール時に VM インスタンスで使用したのと同じ Google アカウントで Chrome にログインしていることを確認します。

  8. VM インスタンスがリモート デバイスのリストに表示されます。デバイスをクリックして接続します。

Chrome RDP for GCP

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

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

  2. Cloud Console で [VM インスタンス] ページに移動し、接続したい Windows インスタンスを見つけます。

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

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

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

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

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

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

リモート デスクトップ

リモート デスクトップ クライアントを使用して接続する前に、次のいずれかの前提条件を満たしていることを確認してください。

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

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

  1. VM インスタンス ページから Windows インスタンスの IP アドレスを特定します。

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

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

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

    gcloud compute instances list
    
  2. Windows マシン上で Microsoft Windows リモート デスクトップ接続を開きます。

    mstsc 接続ウィンドウ。

  3. [コンピューター] に IP アドレスを入力します。[接続] をクリックします。

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

その他

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

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

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

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

  1. VM インスタンス ページから Windows インスタンスの IP アドレスを特定します。

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

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

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

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

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

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

RDP を使用した接続ができない場合は、RDP のトラブルシューティング ページを参照してください。

Special Administrative Console

このセクションでは、インタラクティブ シリアル コンソールを使用して、Windows インスタンスの Special Administrative Console(SAC)に接続する方法について説明します。リモート デスクトップ経由で接続できない場合、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 [INSTANCE_NAME]
    --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 [INSTANCE_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. 接続するインスタンスのユーザー名、ドメイン、パスワードを入力します。

次のステップ