GCEに自分のPCからsshで接続する

IT

Google Cloud Platform(GCP)のGoogle Conpute Engine(GCE)のインスタンスへの接続は、自分のPCにsshクライアントがなくても、ブラウザで接続することもできますが、今回は自分のPCからsshで接続する場合の設定方法を示します。

前提条件

  • すでにGCP上にGCEのインスタンスが立っており、外部IPが割り当てられているものとします。

秘密鍵、公開鍵の作成

ssh-keygenコマンドで鍵を作成します。

$ ssh-keygen -t rsa -f ファイル名

コマンドを打つとパスフレーズを求められるので入力します。このパスフレーズは後で接続時に使用するので覚えておきます。

この鍵の作成の実行はGCEのインスタンス上でも、Mac上でもOKです。GCEのインスタンス上で実行した場合は画面右上のメニューからファイルをダウンロードを選択し、ダウンロードしたいファイルのフルパスを入力すればファイルをダウンロードできます。

GCEのインスタンスに公開鍵を設定する

作成した公開鍵(作成した鍵のファイル名.pubとなっているもの)の中身をVMインスタンスの詳細の編集画面から入力します。下記画像の公開 SSH 認証鍵を入力となっているところです。入力後は保存をします。

以上で設定は完了です。

クライアントからの接続

クライアント から接続します。今回自分はMacを使っているのでsshコマンドで接続します。(秘密鍵は~/.ssh/の下に保存しておきます。)

$ ssh ユーザ名@インスタンスのIPアドレス -i ~/.ssh/秘密鍵のファイル名 -p ポート番号

2回目以降、毎回上記コマンドを打つのはめんどくさいので、sshのconfigファイルに設定を記載しておきます。以下の内容の””で囲っているところを自分の環境に合わせて記載します。

Host "任意のホスト名"
     HostName "IPアドレス"
     Port "ポート番号"
     User "ユーザ名"
     IdentityFile "~/.ssh/秘密鍵のファイル名"
     ServerAliveInterval 60
     ServerAliveCountMax 3

ちなみにServerAliveIntervalはsshの接続が切れやすい環境などで定期的にメッセージを送信することで接続が切れるのを防ぐための設定です。今回は60秒で設定しています。ServerAliveCountMaxはメッセージ送信回数の上限で今回は3に設定しています。

次回以降、以下のコマンドで接続できます。

$ ssh 任意のホスト名

Windowsをお使いの方はお好きなsshクライアントにて接続の設定をして下さい。ここではクライアントがWindowsの場合の接続方法の説明は割愛します。

まとめ

GCPのGCEのインスタンスに自分の端末からsshで接続するための設定を示しました。ブラウザで接続するよりも、気持ちスピードが上がったような気がします。

コメント