ssh でサーバーIPが変わると、、、、
ドメイン名が同じでも、サーバーIPが変わると、次のようなメッセージが出る
takuya@rena:~$ ssh takuya.example.com The authenticity of host '[takuya.example.com]:22 ([192.168.2.100]:22)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxNF4wWt7KZVxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?
他にも、ローカルフォワードでyes地獄
takuya@rena:~/Desktop$ ssh test1 The authenticity of host 'www-server ([localhost]:2222)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxNF4wWt7KZVxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no)?
同じサーバーでも、ポートを変えると。。。また、ホストキーを確認することになる。
ドメイン名や、サーバー名でキーを登録できないの?
ずっと思ってた。もしかしてknown_hosts を無効にするしか無いのかなと。そんなことも考えた。
実は出来た。
HostKeyAlias の設定でIP/Portの変化に対応する。
hostkeyalias の設定をすれば、KnownHostsのファイルに、別名で保存され、IP非依存になる。
hostkeyaliasとCheckHostIP noの設定すればKnownHostsのファイルに、別名で保存され、IP非依存になる。
まじか。それは捗る。
設定 .ssh_config
たとえば、test1/test2 のホストキーをすべて www-serverとして使う設定
Host test1 hostkeyalias www-server hostname localhost port 2222 Host test2 hostkeyalias www-server hostname localhost port 2223
これで、KnownHostsの登録が一回で済む!便利。
ポートフォワードと組合せてた戦う
config と組合せてて戦うと設定が面倒なので、ワンタイムで出来るようにコマンドラインオプションをツケてもイイ。
takuya@rena:~$ ssh -o hostkeyalias=my_alias_name localhost -p 22222
あとはこれを alias するとか
alias ssh-my-server="ssh -o hostkeyalias=my_alias_host_name"
config の host に書けばイイ
host *-alias hostkeyalias my_alias_name CheckHostIP no
これでずいぶんと楽になった。
2015-07-27 追加
CheckHostIP no はやっぱり必要でした。