目次


Linux および Windows のシステム管理に最適な 3 つの Android ツール

SSH、VNC、または Web ブラウザーを使用してサーバーに接続する

Comments

システムの管理は簡単な仕事ではありませんが、問題に素早く対処できると、それは間違いなくプラスになります。つい最近まで、サーバーに問題が発生すると、電話でアラートを受けた後、問題を解決するためにデータ・センターまで足を運ぶというのが常でした。しかし現在は、スマートフォンやタブレットなどのフルパワーのコンピューターを「文字通り」手にする時代となったので、これらの端末がシステム管理に大いに役立ちます。Android に主要ないくつかのアプリをロードすれば、サーバーやサービスをリモートで監視して、問題が発生すると同時にアラートや警告を受け取ることができるので、どこかに足を運ばなくても問題を解決することができます。

このチュートリアルで取り上げる基本的ながらも重要な一連のタスクは、いずれもリモート・サーバーへの接続を伴います。私はコマンドラインでの SSH 作業には ConnectBot を使用し、VNC には android-vnc-viewer を、完全な GUI 作業にはブラウザー・ベースの TeamViewer を使用しています。

Android を使用すると何ができるか?

Android 端末はポータブル・コンピューターとして極めて強力であることから、デスクトップ PC やノート PC などから実行できる作業を Android 端末で実行しようと考えるのは、あながち Android 端末に期待しすぎというわけではありません。このチュートリアルでは、リモート・サーバーに接続する方法を紹介しますが、もちろんこの方法がすべてのシステム管理作業を網羅するわけではありません。例えば、ファイルの送受信、サーバーとサービスの監視、基本的なネットワーク・ジョブ (ネットワーク・ドライブの割り当て、マシンへの ping の送信、DNS サーバーの問い合わせなど) の実行にはツールが必要になります。これらのジョブについては、このシリーズの今後のチュートリアルで取り上げます。

このチュートリアルでは、ブラウザー、e-メール・クライアント、チャット/トーク・クライアントなど、すでに組み込まれているツールを使用して実行できる作業についても検討を行いません (例えば、ブラウザーから実行できる PhpMyAdmin や Webmin、e-メール・クライアントによるアラートの受信など)。代わりに、それほど広くは知られていない特定の Android アプリに焦点を当てます。

コンソールでの SSH アクセス

もし私が 1 つのアプリしか扱うことができなければ、コンソール・セッションを確立できるようにしたいと思うはずなので、まず始めに ConnectBot を取り上げましょう。Google Play での最新バージョンは 2010年 10月にリリースされた 1.7.1 ですが、新しいバージョンの開発は進行中であり、開発スナップショットおよび新しいバージョンを GitHub から入手することができます。このアプリは数百万回インストールされており、その平均評価は 5 つ星中 4.6 で、無料で利用できることから、まさに無敵のアプリです。

ConnectBot では、コンソールで作業する際に、リモート・サーバーや自分の端末にでさえも SSH または Telnet で接続することができます。ユーザー名、接続先のホスト名、(オプションで) 使用するポートを指定すると、これらの接続パラメーターが保管されるので、次回アプリを開くときにはさらに素早く再接続することができます。接続を選択すると、ConnectBot がその接続の確立を試行してから、ユーザーにパスワードの入力を求めます。

複数のサーバーに同時に接続して、それらのサーバーの間で接続を切り替えることもできます。

オプションで、公開鍵証明書を使用することができます (「証明書を使用してセキュア・アクセスを強化する」セクションを参照)。接続のトンネリングにも、このアプリを使用することができます。

ConnectBot からリモート・サーバーに接続する画面のスクリーンショット
ConnectBot からリモート・サーバーに接続する画面のスクリーンショット

スマートフォンの「Back (戻る)」ボタンを使ってメイン・メニューに戻ると、すでにオープン状態になっている接続は緑のアイコンで表示されます。接続を切断するには、exit コマンドまたは Ctrl+D キーの組み合わせを使用するか、メニューから「Disconnect (切断)」を選択します。サーバーから切断された後は、アプリのメイン・メニューに赤のアイコンが表示されます。オープン接続のいずれかをタップすると、そのセッションが表示されます。メイン・メニューの「Settings (設定)」で、「Persist Connections (接続を維持する)」の横にあるチェック・ボックスを選択すれば、バックグラウンドで接続が切断されることがなくなります。さらに、「Keep WiFi Active (WiFi オンを維持する)」(接続が誤って切断されることを防ぐ設定) および「Keep Screen Awake (画面表示を維持する)」(作業中に画面がオフになることを防ぐ設定) の両方のチェック・ボックスも選択してください。

ConnectBot は縦置きモードでも横置きモードでも機能しますが、横置きモードでないと、Hacker's Keyboard 全体が表示されません (上記の囲み記事「キーボードのアップグレード」を参照)。

Hacker's Keyboard のスクリーンショット
Hacker's Keyboard のスクリーンショット

画面の可視の部分を広くしたい場合は、「Back (戻る)」ボタンを使用してキーボードを非表示にしてください (画面の任意の場所をタップすると、キーボードが再表示されます)。一部の設定では特殊なキーを使用できるようになっていますが、私の感想としては、それらの次善策は面倒です。

画面のフォント・サイズは、スマートフォンのボリューム・アップ/ダウン・キーで拡大/縮小することができます。また、特定の画面サイズにするためのメニュー・オプションもあります。表示スペースを大きくする必要がある場合は、ステータス行を非表示にして作業することもできます。画面に表示されているコンテンツは、スライド・ジェスチャーによってスクロールします。スクロールバックのサイズ (行数) は、メイン・メニューから設定することができます (500 行以上にすることをお勧めします)。いずれにしても、私は可能な限り横置きモードでキーボードを非表示にして作業するようにしています。

証明書を使用してセキュア・アクセスを強化する

端末上で、「Menu (メニュー)」 > 「Manage Pubkeys (公開鍵の管理)」の順にタップし、指示に従って鍵ペアを生成します。鍵ペアを生成する際に指定する必要があるのは、鍵ペアの説明、タイプ (RSA またはデジタル署名アルゴリズム)、使用するビット数です。また、オプションでパスワードを指定することもできます (パスワードを省略すると、その Android 端末を使用する誰もが、サーバーにアクセスできることになります)。「Generate (生成)」をタップする際には、指を使って乱数が生成されるようにしてください。これによって、鍵が生成されて保管されます。リモート・サーバーには、この鍵の公開部分をコピーする必要があります。その方法は以下のとおりです。

  • メニューから「Copy Public Key (公開鍵のコピー)」をタップします。
  • サーバーに接続します (通常のパスワード方式で接続してください)。
  • オンライン状態になったら、echo "...the generated public key..." >> .ssh/authorized_keys を実行します。引用符の中に入力するには、貼り付け機能を使用します。authorized_keys ファイルのパーミッションが 644 に設定されていることを確認してください。

新しいアクセス方式をテストするには、サーバーから切断して再接続を試行します。ローカル鍵パスワードを入力するだけで接続を確立できるはずです。

特定の鍵を無効にするには、その鍵の横にあるロックをタップします。これにより、鍵の色が緑から赤に変わり、その鍵は再び有効にするまで使用できなくなります。

VNC によるグラフィカル・アクセス

サーバー上で Windows 用 X サーバーが稼働している場合は、VNC を使用して X サーバーにアクセスすることができます。この方法は、最高のパフォーマンスを実現できるわけではないものの、間に合わせにはなります。私がここで選択するアプリは、android-vnc-viewer です。比較的古いながらも (最新ビルドは 2011年 3月に遡ります)、android-vnc-viewer は数百万のインストールが行われていて、サイズが小さく、しかも無料です。開発は止まっているようですが、このアプリは今でも問題なく機能します。当然のことながら、私が android-vnc-viewer を使用しているのはタブレット上でのみです。スマートフォンの小さいウィンドウで全画面表示をパンしたりスクロールしたりするのは無理があると言わざるを得ません。

このアプリを開いた時点で表示されるのは、前に定義した接続を示すコンボ・ボックス、新しい接続を定義するために使用できる空のフィールド、そして「Connect (接続)」ボタンです。

android-vnc-viewer のスクリーンショット
android-vnc-viewer のスクリーンショット

新しい接続をセットアップするには、その接続に短い説明的なニックネーム、パスワード (接続先の VNC サーバーがパスワードを要求する場合)、サーバーのアドレス、ポート (サーバーによって異なります)、そして色の書式を指定します。24 ビット色にするとかなり見栄えが良くなりますが、当然、処理速度は落ちることになります。

すべての VNC サーバーが使用可能なすべての色深度をサポートするわけではありません。どうしても接続できない場合は、別の色深度を試してみてください。また、VNC セッションがオープン状態の間、色モードを動的に変更することもできます。それには、「Menu (メニュー)」 > 「Color Mode (色モード)」の順にタップします。接続データを保存する必要がある場合は「Keep (保持)」チェック・ボックスを選択します。このチェック・ボックスを選択しなかった場合、接続データはアプリの終了時に消去されます。

接続が確立された後は、タブレットの表示が通常モードになって Android ブラウザーのような動作をします (この作業モードは「Touch Mouse Pan and Zoom (タッチ、マウス、パン、ズーム)」と呼ばれます)。スクロールするには、スライド・ジェスチャーまたはフリック・ジェスチャーを使用します。指がマウスの役割を果たし、タップがクリック操作、ダブルタップが右クリック操作になります。他の操作が必要な場合は、「Menu (メニュー)」 > 「Send Keys (キーの送信)」の順にタップします。すると、小さなポップアップ・ウィンドウが表示され、そのウィンドウからクリックまたはキーの他の組み合わせを送信することができます。マウスをドラッグするには、タップで長押ししてからドラッグします。カーソルが消えた場合は、「Menu (メニュー)」 > 「Mouse@ (マウス@)」の順にタップすると、表示の中央にカーソルが送り込まれます。タップで長押しすると、3 つのボタンが表示されます。そのうちの 2 つは表示を縮小するためと拡大するためのボタンで (ピンチ・ジェスチャーでも同じ効果があります)、もう 1 つは仮想キーボードを表示するためのボタンです。

さらに別の操作としてテキストを入力するには、「Menu (メニュー)」 > 「Send Text (テキストの送信)」の順にタップします。すると、ウィンドウが表示されるので、そのウィンドウでテキストを入力してサーバーに送信することができます。パスワードなどのテキストを保管することで、パスワードを再入力することなくサーバーに送信することもできます。「Menu (メニュー)」 > 「More (その他)」の順にタップすると、その他の操作を選択して実行することができます。例えば、任意の時点で切断することや、Ctrl+Alt+Del キーの組み合わせを送信すること、さらには接続に関する情報を取得することなどができます。VNC 接続で作業する場合、リモート画面は比較的限られたビューになることに注意してください。

VNC で接続したリモート画面のビューのスクリーンショット
VNC で接続したリモート画面のビューのスクリーンショット

リモートから GUI を使用すると、最高のエクスペリエンスが実現されるわけではないのが通例ですが、android-vnc-viewer は非常に優れたエクスペリエンスをもたらしてくれます。速度の問題は別として、実際にリモート・マシンの隣に立っているかのようにリモートで作業することができます。いざという時のために、このツールをすぐに使えるようにしておいてください。

Web を介したアクセス

ファイアウォールやルーターなどを介してアクセスできるように VNC を構成するのは、面倒な作業になりがちです。直接サーバーにアクセスできない場合、私は TeamViewer を使用することにしています。サーバーが Web に接続できさえすれば、このツールを使用してサーバーにアクセスすることができます。クライアントとサーバーの両方が TeamViewer サーバーに接続して、TeamViewer サーバーが Android 端末とサーバーとの間を仲介するという仕組みです。注意する点として、TeamViewer を無料で利用できるのは、非営利目的の場合に限られます。商用目的の作業で利用するには、ライセンスが必要となります。

まず、誰かにリモート・マシンで TeamViewer を起動してもらってください。詳細を掘り下げることはしませんが、協力者はこのプログラムをインストールすることも、1 回だけ実行することもできます。Linux システムの場合は、Wine を通じて実行されます。

協力者には、9 桁のセッション ID とパスワードを示すウィンドウが表示されます。

リモート・マシンでの TeamViewer パネルのスクリーンショット
リモート・マシンでの TeamViewer パネルのスクリーンショット

これらの値を Android クライアントで入力すると、サーバーにアクセスできるようになります。

TeamViewer は、標準の固定パスワードを使用するように設定することも、パスワードをまったく使用しないように設定することもできますが、いずれにしても協力者はリモート・サイトにいるため、その協力者にパスワードを読み上げてもらってください。

協力者のパスワードを TeamViewer で入力する画面のスクリーンショット
協力者のパスワードを TeamViewer で入力する画面のスクリーンショット

セッションがオープンされると、最下部のバーで接続をクローズすることや、仮想キーボードとマウスにアクセスすること、右下の小さいスライダーを使用してズームすることや、特殊なアクションを実行すること (Ctrl+Alt+Del を送信すること、リモート・コンピューターをリブートすること、あるいはリモート・ユーザーの入力をブロックして、協力者のマシンで自分だけが操作できるようにすることなど) ができます。また、設定メニューによって、表示方法 (表示の質や速度) の変更、セッション情報の表示、接続ログへのアクセスなどの機能を使用することもできます。

TeamViewer のツールバーのスクリーンショット
TeamViewer のツールバーのスクリーンショット

TeamViewer の開発者たちは、キーがないという問題に適切に対処しました。従って、仮想キーボードを有効にすると、半透明のタブが表示されます。このタブで、Shift キー、Ctrl キー、Alt キー、Windows キー (UNIX ユーザーや Linux ユーザーには、META キーまたは MOD4 キーとして知られているキー) などの特殊キーをシミュレートすることができます。さらに素晴らしいことに、ファンクション・キー、Esc キー、Tab キーなどもすべてシミュレートできるようになっています。このアプリをリモートから操作するのは、VNC を使用するのと似ていますが、パフォーマンスの違いに気付くかもしれません。データは余分なサーバーを経由してから端末に到達するためです。

オンサイトの協力者と中間のサード・パーティーの両方が必要になるとは言え、TeamViewer を使用すれば、問題のあるリモート・マシンの横にいないとできないような作業をすることができるため、TeamViewer の使用は検討に値します。

Pスマートフォンとタブレットのどちらを使用するか?

以前、私は HTC Desire Z スマートフォン (スライド方式のキーボードが備わっていたため、コンソールでの作業に適していました) と (定着した) Nook タブレットを使用していましたが、今では Google に寝返って、Google Nexus 5 スマートフォンと (Nexus 9 タブレットのリリースを待っている間) Nexus 7 タブレットを使用しています。Nexus 7 タブレットでは Wi-Fi アクセスしか使用できませんが、適切なネットワークを使用できない場合には、Nexus 5 スマートフォンを、携帯電話ネットワークに接続されたポータブル・ホットスポットとして使用することで対処しています。この 2 つの端末には、いずれも長所と欠点があります。スマートフォンはタブレットよりも使いやすく持ち運びに便利で、アラームを受信したりサーバーの可用性チェックを迅速に行ったりするのに適しています。その一方、小さいサイズの画面は実に不便で、場合によっては作業するのがほとんど不可能なほどです。SSH 接続や VNC 接続はその最も顕著な例で、作業するには虫眼鏡と極めて細い指が必要になります。

まとめ

システム管理は必ずしも簡単な作業ではありませんが、Android を使用すれば、モバイル端末からコンソールやグラフィカル・インターフェースによって直接サーバーにアクセスできるため、作業をよりシンプルなものにするための道が開けます。

皆さんがお気に入りのシステム管理用モバイル・ツールはどれですか?ぜひとも、コメントしてください!


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Mobile development, Linux
ArticleID=998123
ArticleTitle=Linux および Windows のシステム管理に最適な 3 つの Android ツール
publish-date=02192015