SSHが間違ったサーバーに接続する

SSHが間違ったサーバーに接続する

DNSでUbuntuサーバーのIPアドレスを変更しました。

今後

 10.x.x.111

後ろに

10.x.x.222

DNSキャッシュをフラッシュしましたが、システムにsshを接続しようとすると、sshはまだ古いIPに接続しようとします。

host foo.example.com
10.10.10.222    <= 222 is the correct *new* ip address



ssh -vv -F /dev/null -o UserKnownHostsFile=/dev/null  foo.example.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /dev/null
debug2: ssh_connect: needpriv 0
debug1: Connecting to foo.example.com [10.x.x.111] port 22.   <= 111 is the incorrect *old* address

以前のIPが存在しないか存在しないことを確認しました/etc/hosts ~/.ssh/known_hosts~/.ssh/config

SSHが間違ったIPアドレスを見つけるのはなぜですか?

修正する

一晩待った後、今朝SSHが正しいIPアドレスに接続されているようです。

答えがないので質問を説明します。 DNS名の解決方法の違いは何ですかsshhost

アップデート2

これを再現してみました。host正しいIPを表示しpingssh古いIPを表示します。

これはpingのstrace出力です。 http://pastebin.com/ifnrqDP6

ベストアンサー1

その理由は、OSXにはフラッシュする必要があるキャッシュが複数あるためです。私のワークステーションはヨセミテを実行しているMacなので、次のコマンドを実行しました。

sudo discoveryutil mdnsflushcache

https://support.apple.com/en-us/HT202516

udnsキャッシュも更新する必要があることがわかりました。

 sudo discoveryutil udnsflushcaches

おすすめ記事