SSHを試してみた
はい、前回までにWake on LAN(WOL)とVNCを試みてきましたね。では、今回は、その先、SSHに挑戦してみましょう。今回使用したものは 1.PC側:freeSSHd2.Android側:ConnectBot3.Ubuntu(LinuxOSの入っている)PC3は、人によっては必要ないかも・・・。私の環境では、Windowsソフトで作成した公開鍵と秘密鍵が使用出来なくて、已む無く、Ubuntuの端末使って公開鍵と秘密鍵を作成しました。なので、公開鍵と秘密鍵を使わない or Windows上で問題なく作成できれば”3”は、不要となります。では1のPC側から準備をしていきます。1.freeSSHdをダウンロード及びインストールします。2.インストール中の質問は全て”Yes”で大丈夫です。3.インストールが終了するとfreeSSHdサーバーが起動します。 起動しますが、サービスとして起動するためタスクバー等にアイコン表示がされません。 タスクマネージャーを立ち上げて、サービスタブをクリックで”freeSSHd”サービスが あるか確認してください。4.3で、freeSSHdで実行されていたら、右クリックして一度停止させます。 これをしておかないと以降の設定が上手く反映されない気がします。 5.スタートからfreeSSHdのショートカットを右クリック、管理者として実行をします。 タスクバーにアイコンが表示されれば起動しています。6.タスクバーのアイコンを右クリックして”Setting”を開き、設定していきます。7.USERタブを開いて、Addをクリック。 freeSSHdを使用するユーザーを登録しましょう。 Loginがユーザー名、Authorizationが接続認証方式、Passwordは認証方式によっては 入力不要です。 下3つのチェックボックスは利用状況にあわせてチェックをしてください。 ただし、”Shell”へのチェックは慎重に! 下手にチェックを入れてしまい、セキュリティが甘いと簡単にWindowsのSystemにアク セスされてしまうことになります。 なお、Shellにチェック無しでも、VNCの使用は可能です、念のため。8.Tunnelingタブを開きます。 ”Allow local port forwarding”と”Allow remote port forwarding”にチェックを 入れます。 このチェックが入っていないとトンネリングが出来ずVNCが使えません。 9.Loggingタブを開きます。 チェックを入れます。 これで、ログが取れますので繋がらないとかエラーはいた時に確認が出来ます。10.Automatic updatesタブを開きます。 チェックをはずします。 オートアップデートは個人的に信用できないので・・・、この辺は好みで変えて下さい。11.SFTPタブを開きます。 リモートアクセスした時に、最初に開く場所を指定します。 安全のために、システムが入っていないドライブを指定しておきましょう。12.SSHタブを開きます。 Listen addressはプルダウンになっているので、LANカードが1枚なら3つ選べるはず。 0.0.0.0か127.0.0.1か192.*.*.*のローカルIPの3つになると思います。 0.0.0.0か192.*.*.*を選ぶのですが、今回は192~を選んでいます。 Portはルータに穴をあけた番号を指定、今回は実験として一時的な開放なので初期値を そのまま利用しました。13.Authenticationタブを開きます。 公開鍵の場所を選びます(初期値でも可)。 私は別途”Key”ってフォルダを作成し、指定しました。14.Windowsのファイアウォールソフトのポートを開放します。 ご利用環境によって違うので方法は割愛しますが、開放ポートは”12”で指定したポート 及びVNCで使用するポートです。15.公開鍵・秘密鍵の作成 私は上手くいきませんでしたが、Windows上で鍵を作成するためには”puttygen”を使い ました。 Ubuntu利用の方法は 1.端末を起動 2.user:~$ ssh-keygen -t rsa (でエンター) Enter file in which to save the key (/home/subaru/.ssh/id_rsa): (保存場所を訊かれているので、何も入力せずエンター) Enter passphrase (empty for no passphrase): (パスワードを訊かれているので、設定したいパスワードを入力してエンター) Enter same passphrase again: (パスワード確認、上と同じパスワードを入力しエンター) あとは、完了するまで待つだけです。 なお、パスワードは入力しても何も表示されません(そう言う仕様です)。16.”15”で作った鍵のペア”id_rsa.pub”と”id_rsa”をWindowsにコピーします。 ”id_rsa.pub”を”7”で登録したユーザー名にリネームかつ、拡張子(.pub)なしにして、 ”13”で作ったフォルダにコピーします。 ”id_rsa”も私はユーザー名に変更しておきました。 17.UltraVNCの設定画面を開きます。 Allow Loopback Connectionにチェックします。 以上まで終わったら、設定終了です。freeSSHdアイコンを右クリックして終了し、タスクマネージャーからサービスを再開します。次に、Android側の設定に入ります。 1.PC側設定”14”で作成した”id_rsa”をWindowsからGalaxy TabのmicroSDにコピー します。2.ConnectBotをマーケットからインストールします。3.ConnectBotを起動します。 下のほうに”SSH↓ ユーザー名@ホスト名:ポート”と表示されていると思います。 ”ユーザー名@ホスト名:ポート”をタップしてfreeSSHdで設定したユーザー名を入力し、 @以降には、ホスト名にfreeSSHdを起動しているPCのIPアドレス、ポートはPC側設定 ”12” で指定したポートを入力します。 ※外部ネットワークからの接続時は、IPアドレスにグローバルIP or DDNSを入れます。3.Galaxy Tabのメニューキーを押すと が表示されますので、公開鍵の設定をタップします。 開いた画面で、鍵のインポートを行います。 インポートするのは”1”でmicroSDに入れた”id_rsa”です。4.”3”により、鍵が追加され表示されたと思いますので、鍵を長押ししてパスワードを入力 します。 パスワードはPC側設定”15”のものです。5.ConnectBotの初期画面に”ユーザー名@ホスト名:ポート”が追加されています。 下作なので、長押しして名称を変えて起きましょう。ConnectBotの設定は以上です。続いて、PocketCloud(VNC)の設定に入ります。1.前回作った物を長押しします。2.設定画面を開いたらアドレスを”Localhost”に変更します。 ネットで調べると”127.0.0.1”に設定とされているものがありますが、私の環境ではIP アドレス指定では繋がりませんでした。以上です。 ここまで完了したら、ConnectBotを起動して、登録された”ユーザー名@ホスト名:ポート”をタップします。接続が開始され、成功するとのような画面になると思います。ここで、Galaxy Tabのホームキーを押してホームに戻り、PocketCloudを立ち上げます。で、接続先をタップします。このときConnectBotは起動したままです。設定に誤りがなければ、やや時間をかけてPCの画面が表示されます。ここで、本当にSSHを通して接続されているか確認するために、ホームキーを長押しして、タスクマネージャーを起動します。ConnectBotが実行していると思いますので、これを停止します。PocketCloudに戻った時にエラーが表示され、接続解除されていればSSHを通して接続されていたと言うことです。変わらず繋がっていた場合は、設定のどこかに誤りがあります。再度、設定を確認してみましょう。と言うことで、SSHのトンネリングを使うことで暗号化(強度がどの程度か分かりませんが)を使ってのVNC操作が可能となりました。もちろんWOLも可能です。これにより、絶えずDDNSを取得し続けることが出来れば、外部ネットワークからのPC操作がGalaxy Tab上から出来るようになることが分かりました。費用を抑えてだと、バッファローの無線LANルーター WZR-HP-*****シリーズ等を導入して、DynDNSサービスに登録するってのが格安かなぁと思います。手に入れやすものだとバッファロー 無線LANルーター WZR-HP-G301NHBuffalo 無線LANブロードバンドルーター WZR-HP-G302Hって感じですが・・・。うーん、購入して、外部ネットワークからの操作も可能にするか悩むところですね。そんなに頻繁には使わないと思いますしねぇ。でも、10,000円弱程度の出費で済むと思うと惹かれなくもないです。最後に、ルーターやファイアウォールのポート開放は、セキュリティリスクを高めることになります。ご自身の責任の下で、行ってください。トラブルや不具合が生じても、一切の責任は負いかねます。