/etc/ssh/ssh_host_.*_key.pub
Linux で ssh をインストールすると(通常は最初からインストールされている)、
/etc/ssh ディレクトリが作られ、
その中に
ssh_host_key.pub ssh_host_dsa_key.pub ssh_host_rsa_key.pub
これらのファイルを見ることができます。
これらは
ssh_host_key.pub -> SSH1プロトコル用のRSA公開鍵 ssh_host_dsa_key.pub -> SSH2プロトコル用のDSA公開鍵 ssh_host_rsa_key.pub -> SSH2プロトコル用のRSA公開鍵
です。
主にこれらが使用される用途は、接続時のfingerprintです。
秘密鍵がある訳は、
公開鍵は秘密鍵から生成するためです。
これらの公開鍵は、
sshクライアントがsshサーバへ接続し、
鍵交換の結果として
SSH_MSG_KEXDH_REPLY もしくは、
SSH_MSG_KEX_DH_GEX_REPLY
に public host key として付与され送信されます。
これをクライアント側でMD5でハッシュ化し、
fingerprint とします。
サーバ側で
ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
とすると、サーバの fingerprint を表示することができます。
クライアント側で生成した fingerprint と サーバ側の fingerprint が一致することで、
接続先が、正しいサーバで、
DNS改竄などによるコネクション ハイジャックが行われていないことを確認することができます。