GCEのLinuxインスタンスへ接続する方法

こんにちは。SCSK石原です。

外部IPを持たないGCEのLinuxインスタンスに接続する方法をまとめました。
開発環境や検証環境の場合、Linuxサーバにログインして操作する機会が多いのではないでしょうか。そんなときの備忘録としてご活用いただけると幸いです。

今回は、下記のOS環境で検証しております。

接続先サーバ RHEL 9
接続元PC Windows 10 

GCE Linuxインスタンスへの接続方法

接続にはいくつかの手段があります。今回説明する方法は下記の5つです。

  1. Google Cloud コンソールからブラウザ経由でSSH接続
  2. Google Cloud コンソールからCloudShellを起動してgcloudコマンド経由でSSH接続
  3. 作業PCのCloudSDK(gcloudコマンド)経由でSSH接続
  4. 作業PCのCloudSDKを利用してローカルにポート転送してサードパーティーツールで接続
  5. 踏み台サーバを作成してサードパーティーツールでSSH接続

接続イメージ図を下記に示します。

Google Cloud コンソールからブラウザ経由でSSH接続

Google Cloudコンソールから「Compute Engine」のページを開きます。

VMインスタンスの右側にある「SSH」のボタンを押すことで、GUI上からLinuxインスタンスへの接続が可能です。

Google Cloud コンソールからCloudShellを起動してgcloudコマンド経由でSSH接続

Google Cloudコンソールから「CloudShell」を起動します。

下記のコマンドを実行して、インスタンスに接続できます。

gcloud compute ssh --zone "[ゾーン名]" "[インスタンス名]" --tunnel-through-iap --project "[プロジェクト名]"

 

作業PCのCloudSDK(gcloudコマンド)経由でSSH接続

公式サイトからCloudSDKをダウンロードします。

クイックスタート: Google Cloud CLI をインストールする  |  Cloud SDK のドキュメント

なお、社内環境の制約(プロキシの制約)などでインストールできない場合は、アーカイブからインストールが可能です。

バージョニングされたアーカイブからのインストール  |  Cloud SDK のドキュメント  |  Google Cloud

インストール後は下記のコマンドを実行して初期化の処理をします。

gcloud init

③と同様のコマンドで作業PCから接続できます。

gcloud compute ssh --zone "[ゾーン名]" "[インスタンス名]" --tunnel-through-iap --project "[プロジェクト名]"

作業PCのCloudSDKを利用してローカルにポート転送してサードパーティーツールで接続

既存利用しているSSH接続用のツールを変更したくない場合に活用することができます。Teratermなど、作業ログが取りやすいため使いたいなどの声をよく聞きます。そのような場合に有効な手段だと考えます。

この方法の場合、コンソールからログインする場合と異なり、接続用ユーザの作成&鍵作成が必要になります。

【初回のみ】ユーザ作成

OS上に接続用のユーザを作成します。OS上での作業になりますので、別の手段で接続できる必要があります

また、ユーザの作成は要件にあったものを作成ください。

sudo groupadd -g 1100 devuser
sudo useradd -u 1100 -g 1100 devuser
sudo passwd devuser

【初回のみ】鍵作成

作成した接続用ユーザのキーペアを作成します。

su - devuser
mkdir -m 700 .ssh
cd .ssh/
ssh-keygen -t rsa
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys 

ここで作成された「id_rsa」ファイルは接続時に利用しますので、作業PCにダウンロードしておいてください

接続手順

作業PCにインストールされているCloudSDKを起動して、下記のコマンドを実行します。

gcloud compute start-iap-tunnel [インスタンス名] 22 --local-host-port=localhost:[ローカルポート]--zone=[ゾーン名]

このコマンドを実行することで、作業PCの指定したポート(例:10022)にGCEの22番ポートが転送されます。

あとは使い慣れたツール(Teratermなど)を利用して、先ほどダウンロードした秘密鍵「id_rsa」ファイルを利用して接続が可能です。

踏み台サーバを作成してサードパーティーツールでSSH接続

Google Cloudに関わらず、以前からよく利用される手段かと思いますので、こちらで詳細な手順の説明は割愛します。

パブリックIPを保持したインスタンスを作成し、適切なFW設定やルーティング設定を実施することで、作業環境から直接接続できる踏み台サーバが作成できます。

踏み台サーバから、同一NW上に存在するサーバにSSH接続をすることで接続が可能です。

注意点

おわりに

今回はGCEのLinuxインスタンスに接続する5つの方法を紹介しました。

あくまで手段になりますので、要件にあった利用をおすすめします。また、本番運用されるインスタンスについては、接続元を制限することが必要になるかと思います。

お役に立てれば幸いです。

タイトルとURLをコピーしました