ブラウザ上からホストのSSHサービスを起動・停止できるウェブアプリを作りました!

はじめに

前回の記事で紹介したマイマネージャーと並行して開発してきたウェブアプリを今日リリースしたので、今回はそのリリースしたものについて紹介したいと思います。

↓作ったもの

アプリの説明 in GitHub

リモート接続マネージャー

より安全、より便利にリモートホストSSHで接続するためのウェブアプリ。

このアプリが生まれた理由

世の中のほとんどのサーバーは常時SSH接続が有効になっていますが、ほとんどのサーバーはインターネットに繋がっているのでサイバー攻撃の標的になっています。

世の中のプログラムが全て完璧だとしたらずっと通信を待ち受けしておくのもいいとは思うのですが、実際には脆弱性がいくつも潜んでいたりするのでそれはあまり得策ではないわけです(ポート番号を22から変更すれば多少はリスクを減らすことはできますが、ポートスキャンなんてやられたら結局同じです)。

そこで、必要な時だけSSH接続を有効にして、いつもは無効にしておくためのツールを作ろうと思いました。

そうして生まれたのが「リモート接続マネージャー」です。

機能の説明

コントロールパネル

上のスクリーンショットで大体分かるとは思いますが、このアプリには大きく分けて次の4つの機能があります。

リモートホストのシステムステータスを確認する

リモートホストSSHサービスのステータス・設定を確認する

リモートホストSSHサービスを起動・停止させる

・指定した期間だけリモートホストSSHサービスを実行する

「ホストの電源」なんかはサイトが見れている以上オン以外あり得ないわけであまり役に立ちませんが、それ以外のステータス表示機能やアクション機能などは普通に便利だと思います。

いくつか機能がありますが、このアプリ最大の売りは「指定した期間だけリモートホストSSHサービスを実行する」という機能です。

スケジュール登録ダイアログ

この機能は特別意識しなくてもシステムが勝手に後始末をしておいてくれるという超便利機能です。

「無効にするの忘れてた...」

なんてことになるのを防いでくれます。

また、このアプリはUIにも少しだけこだわっています。開発当初は各機能ごとに専用のページに移動するような仕様だったのですが、途中から一つの画面で全ての機能にアクセスできた方が使いやすいのではないかと思い、変更しました。

フォームなどをどうやって一つのページに収めたらいいかと悩みましたが、使用しているフロントエンドフレームワークにモーダルという自由度の高いコンポーネントがあったので、結構簡単に作ることができました。しかもデザインもかなりいい感じになりました。

使い方

プロジェクトページで詳しく説明しているので、そちらをご覧ください(日本語です)。

※プログラムの使用には適用される全てのライセンス(MIT Licenseなど)への同意が必要です。

リンク

リモート接続マネージャー:https://github.com/bigbamboo-jp/remote-connection-manager-ja