マルチブートなサーバへのSSH接続での誤判定を回避

sshdが稼働しているマシンでは(おそらくインストール直後の初回起動時に)/etc/sshディレクトリ配下に以下のファイル群が生成される。

[hoge@localhost ssh]$ ll
合計 180
-rw-------  1 root root 132839  8月  2  2005 moduli
-rw-r--r--  1 root root   1550  8月  2  2005 ssh_config
-rw-------  1 root root    668  5月 21 13:59 ssh_host_dsa_key
-rw-r--r--  1 root root    590  5月 21 13:59 ssh_host_dsa_key.pub
-rw-------  1 root root    515  5月 21 13:59 ssh_host_key
-rw-r--r--  1 root root    319  5月 21 13:59 ssh_host_key.pub
-rw-------  1 root root    883  5月 21 13:59 ssh_host_rsa_key
-rw-r--r--  1 root root    210  5月 21 13:59 ssh_host_rsa_key.pub
-rw-------  1 root root   3059  8月  2  2005 sshd_config

ところがこれらはマルチブートマシンの場合、それぞれのOSで生成されてしまうため異なる公開鍵を持つことになり、reboot後に別OSに接続しにいくと、「man-in-the-middle attack」とsshクライアント側で判定されてしまい接続できない。

これを回避する方法として、クライアント側の$HOME/.ssh/known_hostsファイルを消すという方法もあるけれども面倒。。

この場合は、それぞれのOSが同じ鍵を持っていれば良いので、別OSのファイルシステムをどこかにmountして、鍵ファイル群をコピーして共用してあげれば良い。