いままでなんとなくだったものをちゃんと知識として定着させようシリーズ。
(公開鍵認証ってなんだっけなんていまさら言えないし・・・)
まず事前準備として、クライアントにてキーペアを作成し、サーバへ公開鍵を送る
クライアントでssh-keygenをして、サーバのauthorized_keysに公開鍵を登録してあげるイメージ
① クライアントはサーバに対して、ログインを要求する
② サーバは乱数を生成し、クライアントの公開鍵で暗号化する
③ ②と同時に、サーバは乱数からハッシュ値を生成する
④ サーバは暗号化データをクライアントへ送信する
⑤ クライアントは暗号化データを自身の秘密鍵で復号する
⑥ クライアントは復号した乱数からハッシュ値を生成する
⑦ クライアントはハッシュ値をサーバへ送信
⑧ サーバは自身が生成したハッシュ値とクライアントから送られてきたハッシュ値とを比較
⑨ ⑧がOKであれば、ログイン要求を許可し、接続が確立
やっぱ、めんどくさくても絵描かないとダメだね。