ポートフォワードしてSSHしてると,localhostのHost keyが違うといわれてしまう

ついでなので,~/.ssh/config ほかの使い方も紹介しておく
たとえば,上の例をポートフォワードでやる場合

client$ ssh gw -L 10022:host:22 -NTf
client$ ssh localhost -p 10022

でもまあ接続できる.でも別のマシンもあって,同じように接続すると

client$ ssh gw -L 10022:host:22 -L 20022:host2:22 -NTf
client$ ssh localhost -p 20022
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:xxx
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.

となってしまう.
/home/user/.ssh/known_hosts のxxx行目を削除しないと接続できなくなってしまう.

それで,一つ目の対策方法としては(お勧めできないけどね)
configファイルに

Host localhost
StrictHostKeyChecking no
UserKnownHostsFile ~/.ssh/localhost_key

として,

client$ touch ~/.ssh/localhost_key
client$ chmod -w ~/.ssh/localhost_key

とすれば,接続できないってことはなくなる...ただ毎回Host Keyが追加できなかったと文句言われるけど...
ただいいところは,ホストごとにまったく登録が必要がないことかな.

で,もうひとつの解は

Host host
HostKeyAlias host
HostName localhost
Port 10122

Host host2
HostKeyAlias host2
HostName localhost
Port 20122

Host host3
HostKeyAlias host3
HostName localhost
Port 20122
User hatena

とかすると

client$ ssh gw -L 10022:host:22 -L 20022:host2:22 -L 30022:host3:22 -NTf
client$ ssh host
host$ exit
client$ ssh host2
host2$ exit
client$ ssh host3
host3$ exit

で接続できることができると思う.
ただ,ホストごとに書かないから,よく使うホストはここに書くといい.