freeSSHdとConnectBotでSSHトンネリングを行ないVNCの接続を暗号化 特集その4

androidVNcfreeSSHdには、ファイルの転送を行なう「SFTP」だけでなく、プログラムの起動などのコマンドを実行する「shell」や、ほかのサーバプログラムの通信を暗号化できる「tunnel」という機能も用意されている。「ConnectBot」というアプリを使えば、Androidからもこれらの機能を利用可能だ。
tunnelの機能を利用すれば、「android-vnc-viewer」などのアプリで自宅のパソコン上で実行されているサーバにアクセスするときに、インターネット上を流れるデータを暗号化して通信の傍受や改ざんを防止できる。
なお、ConnectBotでは、通常のパスワード認証のほかに、公開鍵認証という方式も利用できる。パスワードは接続のたびに入力しなければならず面倒なので、一度設定すれば以後は自動で接続を完了させられる公開鍵認証の方が手軽だ。また、パスワードの総当たりなどで不正侵入される危険性も減らせる。最初の設定手順が多少面倒だが、ぜひ公開鍵認証を利用しよう。

homeserver_401まず、freeSSHdの「Users」の設定で、「Authorization」を「Public Key」にして、「Shell」と「Tunneing」にチェックを入れて、ConnectBot用のユーザーを登録しておこう。

homeserver_402ConnectBotを起動し、初回起動時の案内を「次へ」を押して読み進め、メイン画面を表示したら、端末のメニューボタンを押して「公開鍵管理」を選択しよう。

homeserver_403鍵の管理画面でメニューボタンを押し、「生成」を実行する。

homeserver_404適当な名前を指定して「起動時に鍵をロード」にチェックを入れ、「生成」を押そう。

homeserver_405このような画面が表示されたら、中央の進捗率が100%になるまで画面を擦るように触ろう。

homeserver_406鍵の生成が完了したら、一覧に追加されるので、追加された項目をロングタップしよう。

homeserver_407ロングタップメニューで「公開鍵をコピー」を押す。

homeserver_408次に、「Jota Text Editor」などのテキストエディタで空のテキストを開き、クリップボードにコピーされた鍵情報を貼り付けよう。

homeserver_409そのテキストを、ファイル名をfreeSSHdに登録したConnectBot用ユーザーの名前にして、拡張子なしで保存する。

homeserver_410保存したファイルをパソコンに転送し、freeSSHdのインストール先フォルダに設置しよう。

homeserver_411次に、ConnectBotのメイン画面で、下部の入力欄に「ユーザー名@ホスト名:ポート番号」のような書式で接続先情報を入力する。ユーザー名はfreeSSHdのConnectBot用ユーザー名、ホスト名はダイナミックDNSで取得した名前など、ポート番号はルーターの設定でインターネット側に開放しているポート番号を指定する。

homeserver_412「フィンガープリントが確認できませんでした」と表示されたら、下に表示されている「:」区切りの英数字列を確認しよう。

homeserver_413freeSSHdの設定画面の「SSH」タブで「RSA key」の欄の下の英数字列を確認し、ConnectBotに表示された英数字列と見比べて、大文字小文字や「:」の有無以外が同じならば問題ない。「このまま接続しますか?」で「Yes」を押せば、接続が完了するはずだ。2回目以降は問い合わせなしで接続されるが、通信内容が改ざんされて偽のサーバにアクセスさせられたりすると、鍵指紋が一致せずに警告が表示される。freeSSHdの設定を変えた覚えがないのに警告が表示されたら、偽サーバの可能性が高いので、接続するのは止めよう。

homeserver_414接続が完了したら、シェルの入力待ち画面が表示されるが、端末のバックボタンでトップ画面に戻ろう。接続中のホストが一覧に表示されるので、ロングタップしてメニューを表示し、「接続ホストの編集」を実行しよう。

homeserver_415ホストの設定では、「フォントサイズ」を見易い大きさに、「エンコーディング」を「Shift_JIS」に設定しよう。

homeserver_416トップ画面に戻ったら、ホストのロングタップメニューから「ポート転送の編集」を実行し、定義の一覧で端末のメニューボタンを押し、「ポート転送の追加」を実行しよう。

homeserver_417VNCの通信を暗号化するには、「タイプ」を「ローカル」に設定し、「ソースポート」に「5900」、「転送先」に「localhost:5900」を入力すればいい。

homeserver_418パソコン上に「UltraVNC」などをインストールし、サーバを起動して、設定で「Allow Loopback Connections」と「Loopback Only」にチェックを入れておこう。

homeserver_419ConnectBotでポート転送を有効にした自宅SSHサーバに接続したら、「android-vnc-viewer」を起動し、「アドレス」に「localshot」を、「パスワード」にはVNCサーバに設定したパスワードを指定し、「ポート」を「5900」に設定して「接続」を押そう。

homeserver_420接続に成功すれば、パソコンの画面がAndroid端末上に表示され、操作を行なえる。詳しい使い方は、ここの記事を参照してほしい。

homeserver_421低速な通信環境などで、VNCの画面表示が遅くて作業しづらい場合は、ConnectBotの接続後に表示されるシェル画面で、コマンドラインによる遠隔操作を行なうといい。「コマンドプロンプト Windows」などで検索すれば、コマンドラインシェルの使い方を解説しているサイトが多数見つかるぞ。

ConnectBot
Jota Text Editor
UltraVNC
android-vnc-viewer
パソコンを遠隔操作するなら「android-vnc-viewer」


関連記事

2011年09月14日09時16分 公開 | カテゴリー: 便利化・快適化 | キーワード: | Short URL
このエントリーをはてなブックマークに追加

最新記事