Google Cloud Platform(GCP)のLinuxへのssh接続

Google Cloud Platform(GCP)のLinuxへのssh接続

夏になりましたね。
みなさまこんにちは。

今回は、以前紹介した、Google Cloud Platform(GCP)に作成したLinuxにssh接続する方法をご紹介します。
ssh接続の概要をお伝えすると、
  1. sshの公開鍵と秘密鍵を生成する
  2. 作成した鍵をGCPに登録する
の2ステップです。このステップを踏めば、ssh接続できるようになります。簡単。
この記事は3分程度で閲覧できます。

すでにssh接続先のインスタンスは出来上がっている前提で話を進めます。
これからインスタンスを作成される方は、以下も参考にしてみて下さい。



Google Cloud Platform(GCP)のLinuxへのssh接続


ssh接続の接続元は今回Macを例にあげます。
ただ、Windowsでも基本的な手順はあまりかわりません。
Windowsでの操作も都度文中にコメントします。
都度説明を書いてますが、よくわからない方やお急ぎの方はコマンド実行と、GCP側での画面操作だけ写真を見て実施いただければ大丈夫です!


GCPへのsshには鍵生成が必須!鍵を生成しよう。:手元のPCで操作


ssh接続には、パスワード認証方式と公開鍵認証方式がありますが、GCPは公開鍵認証方式でしかアクセスできません。
公開鍵認証方式でのsshアクセスには、事前に鍵の生成と共有が必要です。
ということで、早速sshの接続元になる、手元PCでssh用の鍵を作成します。

1. ssh-keygenする

ssh用の鍵生成には、ssh-keygenコマンドを使います。
このコマンドを使うと、ssh接続に使われる秘密鍵と公開鍵が生成されます。
コマンドの内容を以下にご紹介します。

$ ssh-keygen -t rsa

コマンド実行すると、鍵の保存場所確認と、パスフレーズの入力を求められます。
鍵の保存場所は、デフォルトで実行ユーザのホームディレクトリ配下です。特にこだわりがなければデフォルトのままで良いと思います。
パスフレーズは、秘密鍵が漏洩した場合でも悪用されないように最後の砦になってくれます。自分が覚えやすいもので設定しておきましょう。

Windows使いのあなた、Macではssh-keygenコマンドが規定で備わっていますが、Windowsには備わっていません。以下の記事などを参考に、Gitをインストールして、まずはssh-keygenコマンドが使えるようにしましょう。後の手順は同じです。

https://qiita.com/hollyhock0518/items/a3fee20951cd92c87ed9

さて、コマンド実行は終わりましたか?
あなたがデフォルトで実行していれば、上記コマンドの結果以下のファイルが生成されているはずです。

$ <HOMEDIR>/.ssh/id_rsa                # 秘密鍵:private key
$ <HOMEDIR>/.ssh/id_rsa.pub            # 公開鍵:public key

GCPにssh公開鍵を登録。ssh接続できるようにしよう。:GCPで操作


続いてGCP側の操作。
まずはログインして作成ずみのインスタンスを確認します。
作成済みインスタンスは、Compute Engine → VMインスタンスから確認できます。



2. インスタンス詳細からssh公開鍵を登録する


さて、先ほど「1」で作った公開鍵をGCP上のインスタンスに登録します。
登録すると、その鍵でログインができるようになります。
GCP画面上からインスタンス名をクリックして、インスタンスの詳細を確認します。
以下な感じ。



画面をググーッと下にスクロースすると、SSHキーの記載が。
「表示して編集する」をクリックします。



以下のように、鍵を入力するための入力BOXが表示されます。
ここに公開鍵の中身をコピぺします。
公開鍵の中身は以下コマンドで表示できます。

$ less <HOMEDIR>/.ssh/id_rsa.pub

コピペすると以下な感じです。



ほんで、保存した後は以下の感じの表示になります。



以上!
後はsshするだけ!


以上で終了!最後にsshして動作を確認!:手元のPCで操作

最後に、実際にsshしてみましょう!
sshはMacならターミナルから、Windowsならputtyやteratermなどのsshクライアントから行います。
ターミナルからの接続は以下で実施します。

$ ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx

終了です!
おめでとうございます!!