GCP の VM インスタンスに PuTTY でログイン

GCP の VM インスタンスにはデフォルトでブラウザから SSH のコンソールにログインでき、コマンド操作ができる。これを、手元の PC の PuTTY などの SSH クライアントでできないか試してみたところ、手こずったができたのでその過程を記しておく。

鍵の作成

まず、PuTTY で SSH の鍵を作成する。公開鍵とプライベート鍵の2つのペアで1セットの鍵となる。公開鍵は GCP 側に登録し、プライベート鍵はクライアントに登録することで、いちいちユーザー名、パスワードを入力せずにログインできるようになる。

PuTTY がインストールされているディレクトリに PUTTYGEN.EXE というファイルがあるのでそれを実行し、次のようなウィンドウを立ち上げる。

Generate ボタンを押し、ウィンドウ内でマウスをホバーし移動させて鍵が生成される。Parameters セクションのラジオボタンのオプションはデフォルトの SSH-2 RSA で良い。生成できると Key のセクションに文字列が表示される。

そして、Key comment のフィールドにアカウント名を入力。これを覚えやすいようにと何か別の文字列にアレンジしていたりするとログインに失敗するので気をつけること。

アカウント名の確認方法

アカウント名の確認方法は、VM インスタンスにブラウザ経由で SSH ログインすると良い。Google Cloud Platform 管理画面から Compute Engine -> VM Instances -> VM マシン一覧 -> SSH -> Open in browser window.

ウィンドウが開くと、[ユーザー名]@[VM インスタンス名]:~$ といった具合にコマンド入力が促される。この [ユーザー名] の部分に該当するのが、PuTTY の鍵の Key comment に入力する文字列になる。コマンドで whoami と打つと、現在のユーザー名が表示されるので、それをコピーしても良い。コピーできたら exit と打つと、ウィンドウは閉じてくれる。

プライベート鍵の保存

Save private key ボタンを押し、 .ppk の拡張子を付け、任意のファイル名で任意の場所に保存。

公開鍵の登録

次に公開鍵を GCP 側に登録する必要がある。Google Cloud Platform -> Compute Engine -> Metadata -> Edit で鍵の追加のフォームを開く。

次のようなテキストフィールドフォームが表示されるので、PuTTY Key Generator で生成された Key セクションに表示されている文字列をコピーし、貼り付ける。一番最後が Key comment に入力したユーザー名になっていることを確認。自動的に GCP のフォーム側でそれは認識され、 Metadata の項目名として表示される。

PuTTY で接続

基本的な準備はできたので PuTTY で接続したいところだが、PuTTY 側の設定画残っている。

基本的な入力

PuTTY を起動し、Host Name (or IP address) の入力フィールドに、[ユーザー名]@[IP アドレス] を打ち込む。[IP アドレス] は GCP 側で VM インスタンスに割り当てる外部 IP アドレスだ。Compute Engine -> VM Instances -> External IP で確認できる。ポートの入力フィールドはデフォルトの 22 でOK。

その他設定

次に、Category -> Connection -> SSH -> Auth へ移動。

  • Allow agent forwarding にチェック。
  • Private key file for authentication に先程保存したプライベート鍵のパスを入力。
  • (任意) Connection -> Data -> Login details -> Auto-login username にユーザー名を入力しておけば、先程述べた [ユーザー名]@[IP アドレス][ユーザー名] を省略できるという話もあるが試してない。

設定が済んだら、Category -> Session に戻り、Saved Sessions に適当な覚えやすい名称を付け、Save で保存。

接続成功

ようやくこれで準備完了。Open ボタンを押して接続。成功すると以下のような表示になる。ログイン成功スクリーン。

今回参考にしたページは以下の通り。

  • https://cloud.google.com/compute/docs/instances/connecting-advanced?hl=ja
  • https://apps-gcp.com/putty_to_gce01/
  • https://qiita.com/NagaokaKenichi/items/79f82c83a99830e9fd46

Leave a Reply

Your email address will not be published. Required fields are marked *