見出し画像

WEBシステム道 ep.05 SSH接続の設定

ここは、新しいWEBシステムを開発していく記録にしたい、と考えて作った研究室(ブログページ)です。
前回は、GCP上にサーバを構築したのですが、今回はそのサーバに接続するための環境をchromebook上に構築していきたいと思います。

SSH接続用のandroidアプリ

サーバ上でいろいろと作業をする際に、サーバに接続する必要があるのですが、今回インターネット経由でのアクセスになるため、通信のセキュリティレベルを上げる事を考え、 #SSH (Secure SHell)での接続することが基本となっています。
前回の最後に、サーバの起動確認の際に、ブラウザから #SSH 接続して操作することはできました。そのやり方で今後進めていってもいいのですが、以前、試したときには、文字を入力したあと表示するまでのタイムラグが若干長く感じられたりして使いづらかったので、今回はandroidアプリを使って #SSH 接続したいと思います。

以前色々と試していたときに一番良かったのが、 #Terminus です。一番のポイントは、SSH認証鍵を生成する機能がついているため、 #chromebook だけあれば準備できる点が大きいです。

画像1

なお、androidアプリが利用できるかどうか、 #chromebook の機種によっても変わるらしく、違う機種で動作するかは不明ですのでご了承ください。

Termius のインストール

Google Play Storeで検索してインストールします。特に何か特別なことはなかったと思います。

SSH認証鍵の設定

左上のメニューからKeychainsを選択します

画像2

画像3

画像4

右下の「+」ボタンをクリックして、「Genarate key」をクリックします。

画像5

その後出てくる画面で、nameのところに他と識別するための名前を入力し、 typeを「RSA」に設定します。
そして、Passphrase欄にパスワードを入力して、必要あればSave passphraseチェックをONにします。
最後に画面右上の「✔」をクリックして完了です。

GCPへのpublic鍵の設定

ここで生成した鍵は、自分のパソコン内に秘密にしておく必要のあるprivate鍵と、通信する先の相手方に保存するpublic鍵との2つがあります。
今回は、public鍵をコピーしてGCPの方に設定します。

先程、TerminusでGenerate Keyで生成した際にname欄に入力した名前の内容をクリックして開きます。

画像6

ちょっとスクリーンショットが取れないので文章での説明となりますが、クリックしたあとの画面は、一番上にname欄があり、その下にprivate key欄がずらずらと長い文字で表示されています。
その下にpublic keyの欄があるので、その部分(「ssh-rsa」から「==」まで)を選択してコピーします。

次は、GCPのプロジェクトのホーム画面から、ComputeEngineのページへ移動します。

画像7

すると、VMインスタンス(仮想マシン)の一覧が表示されます。名前のところがリンクになっているので、そこをクリックします。

画像8

このページは、設定している内容を表示するだけのページになりますので、上の「編集」をクリックして、編集モードに変更し、下の方へスクロールしていきます。

画像9

一番下から少し上のところに #SSH の設定用のリンクがありますので、「表示して編集する」をクリックします。

画像10

すると、入力欄が出てきますので、そこに先ほどコピーしたpublic鍵を貼り付けます。ただし、単純に貼り付けると、エラーが発生します。

画像11

この場合、最後の「==」の後ろに、半角スペース1文字と、自分のgoogleアカウントのIDの「@gmail.com」より前の部分だけを入力します。(これがSSH接続した際のユーザIDになるようです。)

画像12

最後に、ページ一番下の「保存」をクリックして完了です。

※Google および Google ロゴは Google Inc. の登録商標であり、同社の許可を得て使用しています。

Terminus の設定&接続テスト

今度は、Terminus側でGCPのサーバを登録して、次回から簡単に接続できるように設定していきます。

まずは、左上のメニューから、「Host」を選択します。

画像13

表示された画面右下の「+」をクリックして、「New Host」をクリックします。

画像14

設定画面の各項目に設定していきます。

・Alias:好きな名前を入力する
・Hostname or IPaddreess:GCPのページで表示されている「外部IP」
・Group:グループ分けしたい場合に設定
・Tags:入力不要
・Delete sends Ctrl-H:チェックOFF
・SSH:チェックON
・Mosh:チェックOFF
・Port:22
・Username:グーグルのアカウントIDの「@」より前の文字
・Password:入力不要
・Key:先ほどGenerate Keyしたものを選択する
※以下はそのまま

画像15

これで、右上の✔をクリックすると設定完了です。
最後に動作確認は、今入力したnameのところをクリックしてください。プロンプトが出た状態になれば接続成功です。「exit」を入力して終了してください。

他にも色々と設定したほう良いこともありそうなのですが、今回は接続の設定ができたということで、いったんここまでとします。

なお、GCPのVMインスタンス、停止しておいたほうが課金される可能性が確実になくなるのでそっちのほうがいいのですが、再起動するとIPアドレスが変更になる可能性があります。そうなると、Terminus側の設定も変更する必要があって、手間を考えるとちょっと悩みます。
今のところはONのままでもいいかな、と思っていますが、プログラムを本格的に作り始めた場合は停止しておいたほうがいいかもしれません。

余談・・

ちなみに、この記事に貼り付けているスクリーンショットについては、 #iMarkup というandroidアプリを使っています。
いったん #chromebook 標準機能のスクリーンショットを撮って、そうすると自動的にファイル保存されるので、それを #iMarkup で開いて赤枠で囲ったり字を消したりしています。
windows等に比べると少し手間がかかりますが、なんとかしたいことができるので、といったところです。もし何か良いツール・やり方等があれば教えていただけると嬉しいです。

次回は

設定しておいたほうが良いことをいくつか設定していきたいと思います。が、結構長丁場になる可能性もあるので、何回かに分けていくかもしれません。
やる気次第、といったところでしょうか。

では。次回もよろしくお願いします。

#WEBアプリ開発 #IT #SSH #Terminus #GCP