前回の記事では、GCPのComputeEngineサービスを利用し、VMインスタンスを生成しました。
今回は作成したインスタンスにSSH接続してみます。SSH接続には、GCPコンソールから行う方法と、ローカルPCの認証鍵を登録しローカルからSSH接続する方法とがあります。
SSHってなに?
SSHとは Secure Shell の略称で、リモートコンピュータと通信するためのプロトコルです。
SSHでは公開鍵暗号を利用し、共通鍵を暗号化して鍵交換を行なっているため安全に通信を行うことができます。
※下記より引用
https://www.idcf.jp/words/ssh.html
インスタンスにSSH接続する (GCP Console編)
まずは作成したインスタンスに、GCPコンソールから接続する方法です。こちらは特別な設定などは要りません。
(1) コンソール左上のメニューボタンをクリックし、Compute Engine の中にある VMインスタンス を選択します。
(2) 表示されたインスタンスのレコードの右側に表示されている「SSH」ボタンをクリックします。
(3) インスタンスのコンソールに接続が完了します。
インスタンスにSSH接続する (ローカルPC編)
では次に、ローカルPCからインスタンスに接続する方法です。
(1) ローカルPCで秘密鍵と公開鍵を作成します。以下のコマンドを実行します。
1 |
ssh-keygen -t rsa -C "user-name" -b 4096 |
するとデフォルト設定では、~/.ssh ディレクトリに秘密鍵と公開鍵が生成されます。
1 2 |
-rw------- 1 kren staff 3243 Feb 20 23:46 id_rsa -rw-r--r-- 1 kren staff 749 Feb 20 23:46 id_rsa.pub |
ssh-keygen コマンドって?
linux で秘密鍵と公開鍵を作成するコマンドです。デフォルトでは、 ” ~/.ssh” ディレクトリに “is_rsa” という名前の秘密鍵ファイルと、”id_rsa.pub” という公開鍵ファイルが作成されます。
ここで使用しているオプションは次のものです。
- -t
暗号タイプを指定する。ここではRSA方式を指定。 - -C
コメントを指定する。 - -b
鍵の長さを指定する。
(2) 作成した公開鍵の中身をコピーしておきます。
(3) GCPコンソールから対象のSSH接続したいVMインスタンスを選択します。
(4) 対象インスタンスの管理画面で「編集」ボタンをクリックします。
(5) 下の方にあるSSHキーに関する項目のところで、「表示して編集する」のプルダウンを開きます。
(6) プルダウンを開くと認証鍵を入力する場所が現れるので、ここに先ほどコピーしておいた公開鍵の内容をペーストします。ペーストするとこの項目の横に “ユーザ名” が表示されるので、控えておきます。
(7) これで準備は終了です。ローカルPCから以下のコマンドを実行して、SSH接続を行います。
1 |
ssh "ユーザ名" @"インスタンスの外部IPアドレス" -i "秘密鍵のPATH" |
- ユーザ名は、インスタンスに公開鍵を登録した時に表示されたものを記述します。
- 秘密鍵は、登録した公開鍵と一緒に作成されたものを記述します。
(8) コンソールから接続したときと同じインスタンスに接続できていれば、成功です。
まとめ
今回はローカルPCからVMインスタンスにSSH接続して見ました。最後にもう一度操作をまとめて見ます。
- ローカルPCで ssh-keygen コマンドを使用してを秘密鍵と公開鍵を作成する。
- VMインスタンスの編集画面から、作成した公開鍵の情報を登録する。
- 作成した秘密鍵を使用して、ローカルPCから ssh コマンドを使用してVMインスタンスに接続する。
以上です。ここまでご覧いただきありがとうございました!
参考
https://sleepless-se.net/2018/09/15/gcp-ssh/
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys?hl=ja