Linuxなどでサーバーを立てようという場合、普段は電源を入れて置いておくだけ、という使用が想定されるが、新しいサービスを開始したくなったり、ネットワーク構成に変化があったり、セキュリティホールが見つかって修正パッチが必要になったりと、設定作業やメンテナンス作業が多かれ少なかれ発生する。
そんなときにわざわざディスプレイをつなぎ替えたり、キーボードを引っ張り出したりしなくてもいいように、リモートで(他の端末から)コンピュータを管理できる仕組みがある。ところが、伝統あるリモート管理の仕組みのtelnetは、パスワードや通信内容を暗号化せずにネットワークに流してしまうので、インターネット上で使用するのには適さない。
そこでtelnetに代わってリモート管理の主流になっているのがsshである。sshを使うと、その間の通信内容を暗号化し、比較的安全にリモート管理を行うことが出来るのである。
まず、リモート管理の対象のコンピュータのsshdの設定を行う。もちろん、root権限が必要。sshdの設定の変更は、/etc/ssh/sshd_configを編集することで行う。主な設定変更は以下の項目に対して行った。どれが上記のどの項目に対応するかは見たら分かると思う。
Protocol 1 デフォルトは1,2だった
PermitRootLogin no rootでのログインは禁止
RSAAuthentication yes RSA認証を使用
PubKeyAuthentication no 公開鍵認証を禁止
AuthorizedKeysFile %h/.ssh/authorized_keys 許可されたユーザーの公開鍵リストのパス
PasswordAuthentication no パスワード認証を禁止
設定を保存したらsshdを再起動して、設定を反映させておくこと。
root@host# /etc/init.d/sshd restart
ここで行うのはログインするユーザーの準備である。このセクションの作業はrootではなくそのユーザーの権限で行う。
user@host$ ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/user/.ssh/identity): そのままエンター
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズ
Enter same passphrase again: もう一回
Your identification has been saved in /home/name/.ssh/identity.
Your public key had been saved in /home/name/.ssh/identity.pub.
The key fingerprint is:
(後略)
さらに、公開鍵を認証された鍵として登録する。要は、ファイルをコピーしてアクセス権を限定する(勝手に他人が登録キーを増やしたりできたら困るので)だけ。
user@host$ cd /home/user/.ssh
user@host$ cp identity.pub authorized_keys
user@host$ chmod 600 authorized_keys
先ほど作成したRSA秘密鍵ファイル(identity)を、Windowsマシンにコピーする。方法はFTPでもSambaでもFD使用でもかまわないが、ファイルを移す過程で第3者に中身が漏洩しないように気をつけること。sshの意味がなくなるので。
TeraTermProとTTSSHを配布ページからダウンロードし、説明に従ってインストールする。
あとはTeraTermを起動し、サービスのところで「SSH」を選択し、ユーザ名とパスフレーズ(ログインパスワードではなく、RSA鍵を作ったときのパスフレーズ)を入力し、認証方法を「RSA鍵を使う」にして、先ほどコピーしたidentityファイルを選択すると、接続完了。あとはコンソールと同様に操作が出来るようになっているはず。
ウインドウサイズや色などを好みの設定にしたらコンソールよりもはるかに快適に管理作業が行える。また、設定を変更したらメニューの「設定」「設定の保存」を忘れずに行っておくこと。そうしないと次回起動時にはまたデフォルト設定に戻ってしまう。