SSH
安全にリモートコンピュータと通信するためのプロトコル
認証
SSHでログインする際は、ホスト認証とユーザ認証が行われる。
ホスト認証
サーバの正当性を確認する。
1. SSHでの通信開始時に、サーバからホスト認証用の公開鍵がクライアントへ送信される。
2. クライアントでランダムなデータを生成し、1で受け取った公開鍵で暗号化して、サーバへ送信する。
3. サーバは受け取ったデータを秘密鍵で複合し、それのハッシュ値を求めて、クライアントへ送信する。
4. クライアント側でも同様にハッシュ値を求め、サーバから受信したハッシュ値と比較する。
接続に成功すると、クライアント側のknown_hostsファイルに、サーバの公開鍵情報が記録される。
ユーザ認証
パスワード認証
デフォルトの認証方式
ユーザID+パスワードを利用する。
公開鍵認証方式と比較すると、セキュリティ的には脆弱
公開鍵認証
事前に生成しておいた公開鍵をサーバに配置することで、
対応する秘密鍵を持つクライアントのみに接続を許可する方式。
バージョン
SSH1
RSA公開鍵暗号
SSH2
RSA公開鍵暗号(DSAより安全性が高い)
DSA公開鍵暗号
認証手順
ユーザがログインをする際に「ホスト認証」と「ユーザ認証」を実施する。
ホスト認証
SSHでの通信開始時に、サーバから公開鍵が送信される。
この公開鍵と~/.ssh/known_hostsに保存された公開鍵情報をもとに、なりすましを防止する。
フィンガープリント
参考