У меня есть хост с именем nms.example.org. По моему у /etc/ssh/ssh_known_hosts
меня есть запись для хоста с ключом RSA. Эта запись и все остальные записи управляются моей системой управления конфигурацией.
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 с IP-адресом хоста?
$ 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 от кэширования этого значения для каждого IP-адреса для каждого пользователя known_hosts? Или есть какая-то причина безопасности, почему я просто должен жить с этим раздражающим поведением? Это также расстраивает меня, потому что пара серверов имеют несколько динамических IP-адресов. Мое управление конфигурацией обрабатывает обновления DNS. Но я получаю эти оставшиеся ключи хоста для каждого IP-адреса, заполняя мои известные для пользователя файлы-хосты.
CheckHostIP yes
это повышает безопасность ... ЕСЛИ пользователь точно знает, что он делает, как система использует этот параметр, и концепции подразумеваемого доверия. Таким образом, я действительно буду раскалывать волосы, что я не буду делать ... Я