Google CloudのVMインスタンス(Compute Engine)を作ったが、SSHで接続する方法がわからない。ユーザー、パスワードはどこを見ればいいのか。
今回はGCPのVMインスタンスにSSHやSFTPで接続する方法について紹介する。
Google Cloud Platform (GCP)とは
Google Cloud Platformとは、その名の通りGoogleのクラウド環境。
Amazonで言うところのAWSのGoogle版である。
WEBサーバーやデータベースサーバー、データ分析用のデータウェアハウス、自動実行するジョブやコンテナを管理する機能など、様々な機能をWEB上で利用できるように準備されており、個人から企業まで幅広く利用されている。
Google Cloud Platform(グーグル クラウド プラットフォーム、GCP)とは、Googleが提供しているクラウドコンピューティングサービスである。Google検索やYouTubeなどのエンドユーザー向けのサービスでも、同じインフラストラクチャーが利用されている。さまざまな管理ツールに加えて、一連のモジュール化されたクラウドサービスが提供されており、コンピューティング、データストレージ、データ分析、機械学習などのサービスがある。
VMインスタンス(Compute Engine)とは
VMインスタンス
はGCPの機能群の中のWEBサーバーに当たる部分で Compute Engine
とも呼ばれれる。AWSで言うところの EC2
に当たるもので、要はインターネット上にあるGCPユーザー専用のLinux仮想サーバーである。
このVMインスタンスに対して色々設定する為に、自分のPCから接続する方法を知っておく必要がある。
VMインスタンスに接続する方法
VMインスタンスに接続するには以下のステップが必要だ。
- 公開鍵と秘密鍵のペアを作る
- 公開鍵をVMインスタンスに設定する
- 秘密鍵を使ってVMインスタンスに接続する
公開鍵と秘密鍵とは
公開鍵と秘密鍵というのはセキュリティ用語で、名前の通り2種類の鍵であり、公開鍵は一般公開して多数が持つのに対し、秘密鍵は秘密を保持したい限られた人数で持つ。
暗号化と復号化を行う鍵のペアであり、公開鍵で暗号化したデータは秘密鍵で復号化しないと内容を読むことはできないし、逆に秘密鍵で暗号化した内容は公開鍵を持つユーザーは誰でも見ることができるが同じ暗号データは秘密鍵を持つユーザーにしか作れない。
つまり秘密鍵を復号化側側に持たせれば内容の秘匿、暗号化側に持たせれば個人の証明となる。
この公開鍵と秘密鍵を使ってVMインスタンスに接続する。
公開鍵と秘密鍵は試験にも出る
余談だがこの「公開鍵と秘密鍵」の話はIPAの旧・情報セキュリティスペシャリストの試験にも出ていたので、現在の情報処理安全確保支援士の試験対策に覚えておくと良いかも知れない。
公開鍵と秘密鍵のペアを作る
公開鍵と秘密鍵のペアを作るには、自分のPCで以下のコマンドを実行する。
すると指定したファイル名で拡張子無しのファイルと、.pub
の拡張子が付いたファイルの2ファイル作成される。
ssh-keygen -t rsa -N "" -b 2048 -C "(任意ユーザー名)" -f (任意ファイル名)
UnixコマンドなのでWindowsの場合はWindowsにインストールしたUbuntuから実行する。
あわせて読みたい
公開鍵をVMインスタンスに設定する
次に公開鍵をVMインスタンスに設定する。
今回はVMインスタンスに接続する為のユーザー認証に用いるので秘密鍵はサーバーではなくクライアントPC側が持つ。
公開鍵を設定するにはまずGCPのコンソールにアクセスして、メニューから VMインスタンス
をクリックする。
VMインスタンス |
---|
するとVMインスタンスを作成済みであれば、インスタンスの一覧が表示されるので、設定したいインスタンスをクリックして開く。
VMインスタンス一覧 |
---|
設定したいVMインスタンスをの画面を開いたら、画面上部の 編集
をクリックして編集画面を開く。
VMインスタンスの詳細 |
---|
編集画面を8割ほど下にスクロールすると公開鍵の設定エリアがある。
そこに先ほど作成した .pub
の拡張子が付いたファイルの中身を貼り付ける。
メモ帳などのテキストエディタで開くと 「ssh-rsa AAAAB...」 と長々とした文字列があるのでそのままコピーして貼り付ければ良い。
公開鍵の設定項目 |
---|
そしてVMインスタンスの設定を保存すれば公開鍵の設定は完了だ。
秘密鍵を使ってVMインスタンスに接続する
公開鍵をVMインスタンスに設定できたら次は秘密鍵を使ってVMインスタンスに接続する。
まずはTeraTermを使ってSSH接続する。
TeraTermを起動すると接続先であるホストを入力する画面が出てくるので、ホストにはVMインスタンスの 外部IP
を入力してOKを押して先に進む。
SSH接続先設定 |
---|
次にログイン情報を尋ねられる。
ユーザー名には公開鍵と暗号鍵を作る際に -C
で設定したユーザー名を入力する。
そして認証方式は RSA/DSA/ECDSA/ED25519鍵を使う を選択して、秘密鍵には鍵ペアを作成した際の拡張子無しのファイルを選択する。
ログイン情報入力 |
---|
するとVMインスタンスにSSH接続できる。
SFTP接続する場合も同じユーザー名と暗号鍵を使って接続できる。
まとめ
GCPのVMインスタンスに接続するには、ローカルPCで公開鍵と暗号鍵のペアを作成し、公開鍵をVMインスタンスに設定する。
すると暗号鍵を使ってVMインスタンスにSSH/SFTP接続することができる。
あわせて読みたい