コンフィグレーションガイド Vol.1
SSHv1では,SSHクライアントからSSHサーバへ,次に示す手順で接続します。
- バージョン文字列と各種暗号方式の交換
- ホスト認証と暗号化通信路の確立
- ユーザ認証
- ログイン
以降,SSHv1による接続の各手順について説明します。
- <この項の構成>
- (1) バージョン文字列と各種暗号方式の交換
- (2) ホスト認証と暗号化通信路の確立
- (3) ユーザ認証
- (4) ログイン
(1) バージョン文字列と各種暗号方式の交換
接続後,サーバとクライアントの間でSSHバージョン文字列を交換し,SSHv1で接続するか,SSHv2で接続するかを決定します。
サーバは,ホスト公開鍵,サーバ公開鍵,および使用できる共通鍵暗号方式のリストをクライアントへ送付します。クライアントでは,そのリストから使用する共通鍵暗号方式を決定します。
(2) ホスト認証と暗号化通信路の確立
各SSHサーバは,それぞれ異なるホスト鍵ペア(ホスト公開鍵とホスト秘密鍵)を保持しています。ホスト鍵ペアはインストール時に生成されます。クライアントは,サーバの正当性を確認するために,これらの鍵を使用します。
クライアントでは,サーバから送付されたホスト公開鍵を各ユーザが保持しているホスト公開鍵のデータベースと照合して,ホスト認証をします。その後,暗号化通信路に使用するセッション鍵を生成します。このセッション鍵を,ホスト公開鍵と,同時にサーバから送付されたサーバ公開鍵の両方を使用して暗号化し,サーバに送付します。
サーバでは,送付されたセッション鍵を自身の秘密鍵で復号できると,暗号化した承諾メッセージを送付して,正しいホストであることを証明します。同時に,暗号化通信路が確立されます。
SSHv1での暗号化通信路の確立までの流れを次の図に示します。
図9-9 暗号化通信路の確立までの流れ(SSHv1)
(3) ユーザ認証
ホスト認証後,暗号化通信路が確立されると,公開鍵暗号方式またはローカルパスワードによるユーザ認証をします。ユーザ認証方式は,コンフィグレーションコマンドip ssh authenticationで設定できます。
(a) 公開鍵暗号方式によるユーザ認証
サーバでは,あらかじめユーザの公開鍵を登録しておきます。クライアントでは,登録されているユーザ公開鍵に対応した,ユーザが所持している秘密鍵を使用して認証します。
SSHv1では,「チャレンジ&レスポンス」という方法を使用します。まず,サーバでは,ユーザから送付されたユーザ公開鍵が登録済みかどうかを確認します。その後,乱数を発生させ,それをユーザ公開鍵で暗号化し,クライアントに送付します(チャレンジ)。クライアントでは,チャレンジを秘密鍵で復号し,元の乱数に戻してから,その乱数をハッシュ関数(MD5)で計算した値をサーバに返送します(レスポンス)。サーバでは,元の乱数をハッシュ関数(MD5)で計算した値と,クライアントから返送された値を照合し,一致すればユーザ認証成功とします。
SSHv1での公開鍵暗号方式によるユーザ認証の流れを次の図に示します。
図9-10 公開鍵暗号方式によるユーザ認証の流れ(SSHv1)
(b) ローカルパスワードによるユーザ認証
telnetと同様に,サーバでローカルに設定されたパスワードを使用してユーザ認証をします。しかし,パスワードは暗号化された通信路を経由するため,第三者には見えません。
(4) ログイン
ユーザ認証に成功すると,セッションが確立し,ユーザはログインします。ここで,通常はターミナルのセッションが開始されます。クライアントが接続時にコマンドの実行を指定していた場合は,指定したコマンドが実行されます。scpやsftpで接続した場合は,サーバ側でscpやsftp-serverコマンドが実行され,ファイルが転送されます。
All Rights Reserved, Copyright(C), 2014, 2019, ALAXALA Networks, Corp.