SSHがIPアドレスにKnown_hostエントリを追加するのはなぜですか?

SSHがIPアドレスにKnown_hostエントリを追加するのはなぜですか?

nms.example.orgというホストがあります。私のファイルには/etc/ssh/ssh_known_hostsRSAキーを含むホストエントリがあります。この項目以外のすべての項目は、私の構成管理システムによって管理されます。

nms.example.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZqfmVPs/XqTS...

/etc/ssh/ssh_configまた、特定のホストのホストキーエイリアスを設定するエントリも私のエントリにあります。私がすべてを正しく理解しているならば、これは「しなければならないnms.example.org」だけが重要であることを意味します。

Host nms.example.org nms.example nms
    HostKeyAlias nms.example.org
    HostName nms.example.org

もしそうなら、クライアントsshから接続するときは、以下を使用して各ユーザーKnown_hostsにキーを追加する必要があると思います。知的財産権オーナー?

$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/zoredache/.ssh/config
debug1: /home/zoredache/.ssh/config line 61: Applying options for *
debug1: /home/zoredache/.ssh/config line 71: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 84: Applying options for nms
debug1: /etc/ssh/ssh_config line 363: Applying options for *
debug1: Connecting to nms.example.org [104.236.190.144] port 22.
debug1: Connection established.
debug1: identity file /home/zoredache/.ssh/zoredache-20140204.id_rsa type 1
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: Permanently added the RSA host key for IP address '192.0.2.144' to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
...

SSHは私のホストが有効であることを知っています。(参照:)Host 'nms.example.org' is known and matches the RSA host keyでは、ユーザープロファイルにIPキーを追加するのはなぜですか?

コンピュータを再インストールすると、構成管理システムがホストキーを収集してすべてのシステムに展開するため、これは非常に迷惑です。ただし、IP関連の競合キーは使用するたびにKnown_hostファイルに残り、接続しようとすると警告が発生し、スクリプト接続が妨げられます。

$ ssh nms -v
OpenSSH_6.0p1 Debian-4+deb7u4, OpenSSL 1.0.1e 11 Feb 2013
...
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u4
debug1: using hostkeyalias: nms.example.org
...
debug1: Server host key: RSA 6b:5f:b6:e9:13:c3:b7:39:1e:ec:74:05:33:64:4d:5e
debug1: using hostkeyalias: nms.example.org
debug1: Host 'nms.example.org' is known and matches the RSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:104
Warning: the RSA host key for 'nms.example.org' differs from the key for the IP address '192.0.2.144'
Offending key for IP in /home/zoredache/.ssh/known_hosts:25
Matching host key in /etc/ssh/ssh_known_hosts:104
Are you sure you want to continue connecting (yes/no)?

SSHが各ユーザーのKnown_hostsでこのIP固有の値をキャッシュするのを防ぐ方法は?それとも、このような迷惑な行動に耐えなければならないセキュリティ上の理由はありますか?また、一部のサーバーには動的IPアドレスがあるため、残念です。私の設定管理はDNSアップデートを処理します。ただし、各ユーザーのKnown_hostファイルを入力する残りのIP固有のホストキーを取得します。

答え1

CheckHostIP仕事を果たすものだと思います。

このフラグが「yes」に設定されている場合、ssh(1)はファイル内のホストIPアドレスをさらに確認しますknown_hosts。これにより、sshはDNSなりすましによってホストキーが変更されたかどうかを検出できます。このオプションを「No」に設定すると、検査は行われません。デフォルトは「はい」です。

このオプションを使用すると、誤った設定や攻撃が発生した場合は少し優れた診断を得ることができますが、実際には私が考えることができる方法でセキュリティが向上しません。

オフの場合、CheckHostIPSSH(OpenSSH 6.7p1で始まる)は名前で新しいホストに接続してもIPアドレスを記録しません。したがって、これを次の項目に追加してください.ssh/config

CheckHostIP no

Host特定のホスト(特に動的IPアドレスを持つホスト)に対してのみこの機能をオフにしたい場合は、セクションに追加してください。

関連情報