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で接続するための設定を示しました。ブラウザで接続するよりも、気持ちスピードが上がったような気がします。
コメント