Ansibleをこねこねしているときに、「公開鍵」「フィンガープリント」という用語が出てきたので、ここで概要を少しまとめておく。
公開鍵と秘密鍵
SSH接続の際に公開鍵認証を使う場合は、ローカルPC(クライアント)側に秘密鍵を置き、リモートPC(サーバ)側に公開鍵を置く。
※この場合のSSH接続の向きは、ローカルPC(クライアント)→リモートPC(サーバ)
known_host
ローカルPC側の、$HOME/.ssh/known_host というファイルに、SSH接続したサーバの公開鍵が保存されている。
※known_hostに登録されているのは、公開鍵
フィンガープリント
公開鍵のハッシュ値のこと。
同じ公開鍵でも、サーバが変わるとフィンガープリントも変わる。
TeraTermなどで初めてのリモートPCに接続する際に表示されるセキュリティ警告ウィンドウの2次元バーコードみたいなヤツが、鍵指紋(フィンガープリント)。
AWSのEC2のIPアドレスを固定にしていない場合は、インスタンス実行ごとにIPアドレスが変わるので、TeraTermでSSHするときに「known_hostにないサーバにアクセスしようとしているよ!」というセキュリティ警告が出るのはこのためなんだな。
なりすましに対する警告・・・になるのかな?抑止力になるかどうかはわからないけど。
これまで、公開鍵認証について仕組みは知っていたものの、自分で使ってみるのとは雲泥の理解度になるのだということを改めて実感・・・。
経験、おそるべし。