私のメモです。参考になればいいですが、間違っていたらごめんなさい。
戯れ言 サーバをリモート管理をするには?サーバを立てたがモニタなど買う金はない。そこで、WindowsPCからリモート管理 することにした。有名なTera Term Pro はまだSSH2に対応していないようなので、ウェブで探した結果、 PuTTYを使うことにした。
なお、このページはSHIMADA Mitsunobuさんのページにある PuTTYによるWindows上でのssh接続 を参考にしております(Special Thanks to Mr. SHIMADA Mitsunobu)。 SHIMADAさんのページの方が綺麗で分かりやすいと思いますが、ここでは僕個人の 感想も交えて記述してます。
PuTTYとそれを日本語化したものは以下のサイトのdownloadページから ダウンロードできる。
|
|
|
PuTTYには インストーラが付いているバージョン もあるので、僕はそれをダウンロードした。また、 日本語化されたPuTTY実行ファイルをhdkさんのウェブページからダウンロードした。
PuTTYのインストールは、インストーラの通りにすればOKである。 また、日本語化されたPuTTYは、zipファイルを解凍して出てきたファイルを、PuTTYを インストールしたディレクトリにコピーするだけである。
もちろん、日本語化されたPuTTYを起動するには、putty.exeではなく puttyjp.exeを起動する必要がある。
この章では、見難いときは画像をクリックしてください。 元の大きさの画像が表示されます。
右の図のように、インストール後にputtyjp.exeを起動してホスト名を入力、プロトコルにsshを
選択して「接続」ボタンを押せば、sshサーバにあるアカウントを使って接続可能※
である。この場合は、暗号化された通信内でキーボードからユーザ名、パスワードを入力して
ログインすることになる。
(もちろんsshサーバの設定がPasswordAuthentication yesになっている
必要がある。デフォルトではyesになっている。)
※ホストへ最初に接続するときは、ホストの公開鍵がキャッシュされていな いため「ホントにこのホストで良いの?」と聞かれる。 ここで「はい」又は「いいえ」を押すことによって初めて接続できる。 「はい」を押せばホストの公開鍵がキャッシュされ、以降の接続ではキャッシュされた公開鍵から ホストの真偽を確かめる。 「いいえ」の場合はホストの公開鍵を取得しないまま接続をするため、 次回の接続でも同様のことを聞かれる。 もちろん「キャンセル」を選択した場合は接続しない。
だが、せっかくsshを使うのだから、より安全性の高い公開鍵/秘密鍵による
認証を行うこととした。その第1ステップとして、鍵を生成する必要がある。鍵の生成は、
PuTTYをインストールしたディレクトリにあるputtygen.exeを起動して行う。
(右の図は起動直後の画面)
鍵を生成する前に、どのタイプのキーを生成するかを決める。僕はSSH2しか使わないので
図にあるように「SSH2 DSA」を選択した。SSH1とSSH2には互換性が無いので、Tera Term
などSSH1を使う場合は「SSH1 RSA」を選択すると良い。
次に「Generate」ボタン(赤く括ったところ)を押し、キーを生成する。 キー生成はマウスの動きによって行われるため、右の図のウィンドウ内でマウスを適当に動かす 必要がある。ちなみにウィンドウから外れるとキーの生成が一時中止するが、再びウィンドウ内 に戻ってくると生成が進行する。
キーの生成が終わったら、秘密鍵用のパスワードを入れる(図の青文字の箇所)。 また、赤丸の「key comment」は、デフォルトだとキータイプ-key-西暦になっている ので、分かりやすい適当なコメントを入れる。
次に秘密鍵を適当なディレクトリにセーブする。右図の茶線で括られたボタン 「Save private key」を押して、ディレクトリを選択&名前を入力して保存する。SSH1を用いる 場合は、緑線で括られたボタンを押して同様に公開鍵をセーブする。
SSH2を用いる場合は、図の上の方にある赤枠に括られた文字列をコピーし、 メモ帳にペーストする(コピーは、マウスを左クックして文字を選択し、右クリックの「コピー」 によって行うことができる)。 メモ帳にペーストすると、1行の長い文字列になっているはずである。 また、その文字列の最後に改行が入っていないことを確認する。
具体的には僕のウェブページ「woodyでウェブサーバ:sshdの設定: ユーザの作成と公開鍵のコピー」 を参照のこと(このページでいう公開鍵はSSH2用の場合である。)。
ちなみに、SSH1とSSH2では次のような公開鍵に関する違いがあるようだ。
| Protocol Version | puttygen.exeでの公開鍵作成方法 | ~/.ssh/での公開鍵の名前 |
| SSH1 | 「Save public key」で保存されたもの | authorized_keys |
| SSH2 | ウィンドウに表示された文字列を メモ帳にコピー&ペーストしたもの |
authorized_keys2 ("2"が抜けても認証するようだが) |
この章の図はクリックすると拡大図が表示されます。
puttyjp.exeをダブルクリックして立ち上げる。立ち上げたら、 図の赤枠ようにホスト名を入力し、プロトコルにSSHを選択する。この設定を頻繁に 使うようなら、青字のところにセッション名を入力した後に保存ボタンを押して保存 しておくと良い。ちなみに、この保存ボタンを押さないと、決して保存してくれないこと に注意。。。(^^;;;;
次に左のウィンドウにある「接続」を選択し、自動ログインのユーザ名 を入れる(図の右側の赤丸内)。ここに入れる名前は、sshサーバにログイン可能な名前にする 必要がある。但し、ここが空欄の場合は、接続時にユーザ名を聞かれるだけである。 (それが煩わしくなければそれでOKである)
左のウィンドウにある「ssh」を選択し、優先するプロトコルバージョンを選択する。 僕はSSH2しか使わないようにサーバを設定しているので、ここでは「2 Only」を選択した。 自分の接続先がどのプロトコルバージョンを使っているか分からない場合は「2」を選択して おくと良いだろう。
最後に「認証」を選択して、真ん中付近にあるプライベートキー(=秘密鍵)のある 場所を指定する(図の大きな赤丸内)。 ボックスの隣にある「参照」をクリックして、先の「鍵の生成」で作った秘密鍵を選択すれば良い。
また、何らかの理由で公開鍵/秘密鍵の認証に失敗した場合に、キーボードから
パスワードを入力してログインできるよう、青丸の「"keyboard-interactive"を試みる(SSH2)」
にチェックしておくと良い※。
※sshサーバの設定で「PasswordAuthentication」がyesになっている必要がある。
上記で基本的な設定が終わりである。もう一度左のウィンドウの「セッション」を クリックし、「接続」ボタンを押せばsshサーバに接続する。 接続後、パスワード入力を求められるので、秘密鍵の正しいパスワードを入力するとsshサーバに ログインできる。但し、上記の設定を後でまた使う場合には保存しておくこと。 (そうしないと上記の設定は次にPuTTYを起動しても保存されていない)
この章の図はクリックすると拡大図が表示されるものもあります。
上記でPuTTYを使ってsshサーバにログインできるようになるが、ログインする度に 毎回秘密鍵用パスワードを入力するのは面倒である。Pagentを使うと秘密鍵のパスワード 入力を省略できるようになる(PC-UNIXのssh-agentみたいなものである)。以下、その使い方 を記述する(簡単だけど)。
PuTTYがインストールされたディレクトリにあるpagent.exeをダブルクリックする。
すると、下図のようにタスクトレイにPagentアイコンが表示される。

次に、タスクトレイにあるPagentアイコンをダブルクリックする。 今度は右の図のようなウィンドウが出てくる。ここに秘密鍵を登録しておくと、PuTTYを接続しても 秘密鍵用のパスワードを聞かれなくなる。
秘密鍵を登録するには、図の「Add Key」を押すと出てくるウィンドウで 秘密鍵のあるディレクトリに行き、秘密鍵を選択すればOKである。
秘密鍵を選択すると、下図のように秘密鍵のパスワードを入力する画面になる。 ここで正しいパスワードを入力すると秘密鍵が登録される。
無事、鍵が登録されると右の図の赤丸のように秘密鍵が表示される。 登録が確認できたら、「Close」ボタンを押してこのウィンドウを閉じる。
上記の作業が終わった状態でPuTTYを起動すると、パスワードを聞かれることなく sshサーバにログインできる。もちろん、これはタスクトレイにPagentが常駐している場合である。 もし、Pagentを終了させた場合は、もう一度秘密鍵の登録からやり直すことになる。