CGPのSSH接続

CGP(GCE VMインスタンス)のSSH接続方法です。インスタンス作成が成功したらブラウザーウィンドウからSSH接続できるようになっています。これは結構便利は便利なんだけど、LOCAL PCの普通のSSHクライアントとかで鍵認証でアクセスした方が長い開発の中では便利なので、ブラウザーウィンドウでのコマンド操作は初期構築の場面やクライアントからSSHアクセスできなくなったとき(FWの設定などを失敗した場合)ってことになるかと思います。

Google Cloud SDKのインストール

Google Cloud SDK ドキュメント
「Cloud SDKのインストーラ」をダウンロードします。GoogleCloudSDKInstaller.exeというファイルが落ちてくるのでダブルクリックしてインストールします。インストーラの指示に従ってインストールします。
このときGCPで利用するGoogleアカウントにブラウザー上でログインしておく必要があります。インストールを行う途中でこのアカウントに権限が紐づけられます。
コマンドプロンプトが開いていいるので、新しいプロジェクトを作成するか既存のプロジェクトを番号で選択します。
GCEのVMインスタンスのSSH接続で「gcloudコマンドを表示」を選択してコマンドをコピーします。「Google Cloud SDK Shell」というコマンドプロンプトのショートカットの作成がされているので、gcloudコマンドでアクセスしてみます。(私の環境ではputtyが立ち上がってコネクションエラーになって終わりました。)
Windows環境ではデフォルトでコマンドプロンプトが立ち上がりますが、他のアプリケーションと同様にパスを通せばどのようなクライアントツールでも使えます。

$ cd C:\Program Files (x86)\Google\Cloud SDK
$ gcloud -v
Google Cloud SDK 224.0.0
bq 2.0.36
core 2018.11.02
gsutil 4.34

という感じです。

FWの設定

デフォルトではSSHのポートは開いています。カスタマイズする場合はFWの設定で任意のポートを開放します。

CentOS7の場合

GCPで選択するCentOS7はデフォルトでSULinuxの設定が有効になっているようです。これを無効にしてインスタンス再起動する必要があります。

GCPのFWの仕組み

FWの設定を試しに全部削除してみたら全部つながらなくなってしまったので、GCPでのFWはホワイトリスト管理ということになっているっぽいです。ブラウザーウィンドウからのSSH接続でさえFWでtcp:22を開けておかないと接続できないことになっていました。
各所解説にすでに書かれていることではありますがGCPもAWS同様にクラウドネットワーク中に独自のFWを設けていてVMインスタンス固有にFWが付属しているわけでなないです。ネットワーク構成でいうともっと前の方にFWがあってVMインスタンスのリソースとは全然離れたところにあるというわけです。また同様にして外部にさらされているグローバルIPアドレスも全く別の仕組みで付与されていて「ip a」コマンドなどで見ることができません。VMインスタンスそれ自体に付与されているIPアドレスは「内部IP」といわれるものになっています。


GCEのインスタンス作成からssh接続まで
GoogleComputeEngineでVMインスタンスにSSH接続する。-WordPress作成 GCE編 Part.3

Last update: 2018.11.13 (火)