SSHで簡単ホームネットワーキング
我が家では妻と私で1台のデスクトップPCを共有しており、同時に利用することも多い。このPCはSlackware Linuxを実行していて、私たちはユーザアカウント、Thunderbirdの電子メールプロファイル、Firefoxのブックマークを個別に持ち、その他ドキュメントも各自で管理している。Linuxでは複数のX Windowセッションを使ってこのPCを各自の仮想端末上で共有できるのだが、モニタとキーボードが1人分しかないので、一度に1人しか使えない。
そこで、このシステムを2人で同時に使えるように、ノートPCを購入してopenSUSEのインストールと無線ルータの設定を行った。SSHを使ってデスクトップPCに接続することで、このノートPCはデスクトップPCの拡張機器 ― 要するに追加のキーボードとモニタ ― として機能する。また、KDEのKonquerorやGNOMEのNautilusといったファイルマネージャでは、SSHを利用して別のコンピュータへのリモート接続が可能だ。そのため、ファイルをいちいちフラッシュメモリから出し入れするよりずっと効率的にリソースを共有できる。
SSHデーモンの設定
そうしたネットワーク接続の設定にあたって、まずはSSHがインストールされていることを確認する。SSHプロトコルのオープンソース実装版であるOpenSSHは、ほとんどのLinuxディストリビューションに含まれている。もし含まれていなくても、正式なLinux用OpenSSHアプリケーションをOpenSSHのWebサイトのダウンロードページから入手できる。
SSHが用意できたら、接続先となるホストPCでSSHデーモンの設定を行う必要がある。その設定ファイル「/etc/ssh/sshd_config」にはわかりやすいコメントが付いているが、項目をいくつか編集してより使いやすく安全なものにする必要がある。ファイルの冒頭部には、次のようなコメントが記されている。
# The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options change a # default value. # (OpenSSHに付属するデフォルトのsshd_configでは、各オプションに # 想定されるデフォルト値が記されていますが、コメントアウトされた # 状態になっています。コメントアウトの解除によってデフォルト値を # 変更できます。)
つまり、オプションを変更するには行頭のシャープ記号の削除が必要なわけだ。ここでは、最低でも3つのオプションを変更しなければならない。rootユーザになるか、sudoを使うかしてテキストエディタで「/etc/ssh/sshd_config」を開き、以下の各行を探して変更を行う。
-
#Protocol 2,1
をProtocol 2
に変更する。SSHプロトコルには利用できるバージョンが2つあるが、バージョン1よりもバージョン2のほうが安全性が高い。このオプション変更の結果、より安全なバージョン2が必ず使用されることになる。 -
#PermitRootLogin yes
をPermitRootLogin no
に変更する。これは、リモートユーザがrootユーザとしてこのPCにログインできないようにするためだ。root権限が要求されるシステムのメンテナンスやその他の作業を行う場合は、一般ユーザとしてログインしてからsudoまたはsuを使ってrootになればよい。 -
#X11Forwarding no
をX11Forwarding yes
に変更する。このオプション変更により、コマンドラインベースでないプログラムもSSH経由で実行できるようになる。
以上の変更を加えた設定ファイルを保存したら、簡易ホームネットワーキング向けSSHデーモンの設定は完了だ。SSHデーモンは通常、大半のLinuxでデフォルトインストール環境の一部として実行されている。
編注:変更した設定を反映させるために、SSHデーモンを再起動させること。
別のマシンからこのホストPCに接続するには、ホスト側のIPアドレスを知る必要がある。そこで、rootユーザになるかsudoを使って、ifconfig
コマンド(interface configuratorの意)を実行してホストPCのIPアドレスを調べる。このアドレスは、該当する接続タイプ(イーサネットカードの場合は“eth0”、無線カードの場合は“ath0”など)の“inet addr”で始まる行に記されている。
SSHを使ったプログラムのリモート実行
SSHデーモン(sshd)が実行中の状態になっていれば、SSHサービスの利用は簡単だ。ターミナルウィンドウを開き、ユーザ名と先ほど調べたIPアドレスを指定して次のコマンドを実行すればよい。
ssh -Y -l ユーザ名 IPアドレス
-Y
スイッチはホストPC側X Windowアプリケーションの信頼できる転送を有効にするもので、クライアントPCのX Window環境でこうしたアプリケーションの実行が可能になる。また、-l
スイッチを使えば、ログイン先のユーザ名を指定できる。このスイッチを指定しない場合は、クライアントPCで使用中のユーザ名でログインを行うものと見なされる。
私の場合は、自分のホームディレクトリに用意してある簡単なbashスクリプトを使って接続を行っている。以下のスクリプトのユーザ名とIPアドレスを書き換え、ファイル名をssh_connect.shとして保存するとよいだろう。
#!/bin/bash #ssh_connect.sh ssh -Y -l ユーザ名 IPアドレス
このファイルを実行可能形式にし、ターミナルウィンドウのホームディレクトリから「./ssh_connect
」と入力してスクリプトを実行する。
初めてログインする際には、次のようなメッセージが表示されるはずだ。
The authenticity of host 'IP address' can't be established.
RSA key fingerprint is a long string of characters
Are you sure you want to continue connecting (yes/no)?
ここで“yes”と答えると、SSHアプリケーションによって、信頼できるホストが列挙されているホームディレクトリ内の隠しファイルに、指定したIPアドレスのエントリが追加される。
アプリケーションのリモート実行を行うには、ホストPCへの接続に用いたターミナルのコマンドラインからプログラム名を入力するだけでよい。X環境にいれば、リモート接続でX Windowアプリケーションが動作する。たとえば、「thunderbird&
」と入力すれば、ノートPCからデスクトップPCのThunderbirdを利用してメールを読むことができる。最後にアンパーサンド(&)を付けるとアプリケーションがバックグラウンドで実行されるため、アプリケーションの実行中でもコマンドラインを利用することができる。SSHクライアント側のPCは、SSHホストPCから見れば追加のキーボードおよびモニタとして動作するため、SSH経由でSSHクライアント側の行うあらゆる作業は、ホストPC側で実行されることになる。
KDEおよびGNOMEにおけるリモートフォルダの設定
リモート作業はそれだけでも生産性を高めるすばらしい方法だが、KDEとGNOMEの双方にはSSH接続を利用してホストPCをネットワークフォルダにマッピングする方法が用意されており、PC間でのファイルのコピーを簡単に行うことができる。さらに、ホスト側にアプリケーションを実行させなくても、ローカルのアプリケーションを使ってリモートファイル(ホスト側のファイル)を編集することも可能だ。
Konquerorの場合は、「Go」メニューから「Network Folders」を選択し、「Add a Network Folder」アイコンをクリックする。ダイアログの指示に従いながら、追加するフォルダのタイプとしてSSHを選択したうえで簡単なフォームの入力を行う。「Name」フィールドにはフォルダに付ける好きな名前を、「Server」フィールドにはホストPCのIPアドレスをそれぞれ入力すればよい。
GNOMEで同様の設定を行うには、画面最上部の「Places」メニューから「Connect to Serve」を選択する。KDEのKonquerorの場合とよく似たダイアログボックスが現われるので、指示に従ってサービスタイプ(SSHを選択)、サーバ、オプション情報の入力を行う。オプション情報には、ポート番号(通常は22)、接続先のフォルダ、ユーザ名、接続名がある。KDEでもGNOMEでも、接続の設定はほんの数秒で終わる。
SSHは、簡単なホームネットワークの設定に威力を発揮する便利なツールだ。SSH経由でのアプリケーション実行のパフォーマンスは、比較的古いハードウェアでも悪くない(自宅のPCはホスト、クライアントともPentium IIIマシンである)。私が使っている限り、ワープロや電子メール、Webブラウザを妻と同時に利用していてもホストPCの処理速度が著しく低下することはない。
2台のPCの接続が必要になったら、ぜひSSHを試してもらいたい。設定も簡単だが利用はもっと簡単だ。
Drew Amesはペンシルバニア州で環境プランナとして活躍している。