このドキュメントでは、踏み台インスタンス 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 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 に接続するには、次のいずれかのタブに示されている手順を実施します。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- サービス アカウントとユーザー アカウントに対するサービス アカウント ユーザー ロール(
roles/iam.serviceAccountUser
)に含まれるすべての権限。単一のサービス アカウントにこのロールを付与する方法について詳しくは、プリンシパルに 1 つのサービス アカウントの権限の使用を許可するをご覧ください。 - OS Login を使用する場合は、サービス アカウントとユーザー アカウントに対する OS Login の IAM ロールに含まれているすべての権限が必要です。
- OS Login を使用しない場合は、サービス アカウントとユーザー アカウントに対する
compute.projects.setCommonInstanceMetadata
権限も必要です。
さらに、サービス アカウントを VM に割り当て、VM に cloud-platform
アクセス スコープを設定する必要があります。
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-ipVM_NAME
は、接続する VM の名前に置き換えます。
次の手順で、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 を使用して踏み台インスタンスを介して 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 接続の仕組みを学習する。