У мене хост на ім'я 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 все ще здається, що йому потрібно додати ключ до моїх відомих користувачів з користувачем із 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-адресами, у файлах відомих_хостів за час використання, які викликають попередження про спробу підключення, що заважає скриптам підключатися.
$ 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-адресою у кожному знаючому_хості користувачів? Або є якась причина безпеки, чому мені просто доводиться жити з такою дратівливою поведінкою? Це мене також засмучує, оскільки пара серверів має кілька динамічних IP-адрес. Моє управління конфігурацією обробляє оновлення DNS. Але я отримую ці ліві ключі хоста за IP-адресою, заповнюючи мої файли відомих користувачеві знань_хостів.