このドキュメントでは、踏み台インスタンス VM を使用して内部 IP アドレスを介して仮想マシン(VM)インスタンスに接続する方法について説明します。踏み台インスタンスは外部 IP アドレスを持たない VM を含む Virtual Private Cloud(VPC)ネットワークへの外部エントリ ポイントを提供します。踏み台インスタンスを使用する場合は、まず踏み台インスタンスに接続してから、ターゲット VM に接続します。
VM に外部 IP アドレスがない場合は、内部 IP アドレスを使用して VM に接続すると便利です。VM に外部 IP アドレスがある場合は、外部 IP アドレスを使用して VM に接続します。外部 IP アドレスを持たない VM に接続する必要があり、踏み台インスタンスを使用できない場合は、内部専用 VM の接続オプションに一覧表示されている他の方法を確認してください。
サポートされているオペレーティング システム
これらの接続方法は、Compute Engine で利用可能なすべての公開 Linux イメージでサポートされています。Fedora CoreOS イメージの場合、これらの方法を使用する前に、SSH アクセスを設定する必要があります。
踏み台インスタンス VM を作成する
限定公開クラスタの内部ネットワーク内に、クラスタを管理できる踏み台インスタンスとして機能する Compute Engine VM を作成します。
コンソール
次の手順で踏み台インスタンス VM を作成します。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
- 次の VM の詳細を指定します。
- 名前: VM の名前。
- マシンタイプ: マシンタイプ。小規模なマシンタイプ(
e2-micro
など)を選択します。 - ブートディスク オペレーティング システム: Linux OS。
[詳細オプション] セクションを開き、次の操作を行います。
[ネットワーク インターフェース] セクションで、ターゲット VM と同じ VPC ネットワークとサブネットを選択します。
[外部 IPv4 アドレス] で [エフェメラル] を選択します。
VM を作成して起動するには、[作成] をクリックします。
gcloud
gcloud compute instances create
コマンドを使用して、踏み台インスタンス VM を作成します。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
次のコマンドを実行して、踏み台インスタンス VM を作成します。
gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET,address=""
次のように置き換えます。
VM_NAME
: VM の名前。ZONE
: VM のゾーン。IMAGE_FAMILY
: Linux イメージ ファミリー。IMAGE_PROJECT
: イメージを含むイメージ プロジェクト。SUBNET
: ターゲット VM と同じ VPC サブネット。デフォルトの VPC を使用する場合、SUBNET
はdefault
です。
VM に接続する
VM に接続するには、次のいずれかのタブに示されている手順を実施します。
gcloud
gcloud compute ssh
コマンドを実行し、踏み台インスタンスを介して SSH を使用して VM に接続します。
次のコマンドを実行して、踏み台インスタンス VM に接続します。
gcloud compute ssh BASTION_NAME
BASTION_NAME
は、踏み台インスタンス VM の名前に置き換えます。--internal-ip
フラグを使用し、踏み台インスタンス VM から内部 IP アドレスを介してメイン VM に接続します。gcloud compute ssh VM_NAME \ --internal-ip
VM_NAME
は、接続する VM の名前に置き換えます。
OpenSSH クライアント
次の手順で、OpenSSH クライアントから踏み台インスタンスを介して VM に接続します。
- VM に SSH 認証鍵を追加します(まだ追加していない場合)。
Google Cloud コンソールで [VM インスタンス] ページに移動し、踏み台インスタンス VM の外部 IP アドレスを確認します。
- ワークステーションでターミナルを開きます。
次のコマンドを実行して、踏み台インスタンス VM に接続します。
ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
次のように置き換えます。
PATH_TO_PRIVATE_KEY
: VM に追加した公開鍵に対応する秘密 SSH 認証鍵ファイルへのパス。USERNAME
: ユーザー名。メタデータで SSH 認証鍵を管理する場合、 ユーザー名は SSH 認証鍵を作成したときに指定したユーザー名です。 OS Login アカウントの場合、ユーザー名は Google プロフィールに定義されています。たとえば、cloudysanfrancisco_example_com
や、cloudysanfrancisco
です。-
EXTERNAL_IP
: VM の外部 IP アドレス。
踏み台インスタンス VM から、次のコマンドを使用して VM の内部 IP アドレスを介して接続します。
ssh USERNAME@INTERNAL_IP
次のように置き換えます。
USERNAME
: ユーザー名。メタデータで SSH 認証鍵を管理する場合、 ユーザー名は SSH 認証鍵を作成したときに指定したユーザー名です。 OS Login アカウントの場合、ユーザー名は Google プロフィールに定義されています。たとえば、cloudysanfrancisco_example_com
や、cloudysanfrancisco
です。INTERNAL_IP
: VM の内部 IP アドレス。
PuTTY アプリ
PuTTY を使用して踏み台インスタンスを介して VM に接続します。手順は次のとおりです。
- 踏み台インスタンス VM に SSH 認証鍵を追加します(まだ追加していない場合)。
- ワークステーションにまだ PuTTY アプリがインストールされていない場合は、PuTTY パッケージ ファイルをダウンロードします。
Google Cloud コンソールで [VM インスタンス] ページに移動し、接続する VM の内部 IP アドレスを探します。
- PuTTY アプリを開きます。接続構成ウィンドウが開きます。
[
Host Name
] フィールドに、SSH 認証鍵に関連付けられているユーザー名と、接続する VM の外部 IP アドレスを入力します。形式は次のようにします。USERNAME@EXTERNAL_IP
次のように置き換えます。
USERNAME
: ユーザー名。メタデータで SSH 認証鍵を管理する場合、 ユーザー名は SSH 認証鍵を作成したときに指定したユーザー名です。 OS Login アカウントの場合、ユーザー名は Google プロフィールに定義されています。たとえば、cloudysanfrancisco_example_com
や、cloudysanfrancisco
です。-
EXTERNAL_IP
: VM の外部 IP アドレス。
- [Category] メニューで、[Connection] > [SSH] > [Auth] に移動します。
- [Private key file for authentication] フィールドで、VM に追加した公開鍵に対応する SSH 秘密鍵ファイルを選択します。
- [Authentication Parameters] セクションで、[Allow agent forwarding] を選択します。
- [開く] をクリックして、踏み台インスタンス VM に接続します。
踏み台インスタンス VM から、次のコマンドを使用して VM の内部 IP アドレスを介して接続します。
ssh USERNAME@INTERNAL_IP
次のように置き換えます。
USERNAME
: ユーザー名。メタデータで SSH 認証鍵を管理する場合、 ユーザー名は SSH 認証鍵を作成したときに指定したユーザー名です。 OS Login アカウントの場合、ユーザー名は Google プロフィールに定義されています。たとえば、cloudysanfrancisco_example_com
や、cloudysanfrancisco
です。INTERNAL_IP
: VM の内部 IP アドレス。
トラブルシューティング
失敗した SSH 接続を診断し、解決するための方法については、SSH のトラブルシューティングをご覧ください。
次のステップ
- VM へのアクセスを管理する方法を学習する。
- VM にファイルを転送する方法を学習する。
- Compute Engine での Linux VM への SSH 接続の仕組みを学習する。