Когда в одной локальной сети несколько ssh
серверов используют DHCP, их IP адрес может измениться.Каждый раз, когда у них появляется новый адрес (то есть: адрес, которого у них никогда не было в этой локальной сети), появляется следующее сообщение:
The authenticity of host '192.168.1.x (192.168.1.x)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
Если я скажу да
, то отпечаток пальца будет навсегда , относящийся к этому адресу. Но когда другой ssh
сервер будет 192.168.1.x, у него будет другой отпечаток, и появится сильное предупреждение.
И сервер (ы), и клиент работают под управлением Ubuntu 14.04 с последними обновлениями. Я доверяю серверу, потому что у меня есть физический доступ к нему, и даже когда его адрес изменился, я знаю его подлинность.
1) Возможно ли, что один и тот же сервер периодически меняет свой отпечаток ключа?
2) Есть ли способ подавить проверку отпечатка пальца только для локальных адресов, то есть в диапазоне 192.168.0. 1.1-254?
1) Возможно ли, что один и тот же сервер периодически меняет свой отпечаток ключа?
Да, серверные ключи теоретически могут быть могут быть изменены администратором этого сервера в любое время. Однако это разрушает устоявшееся доверие, поэтому на практике этого не следует делать без причины.
Это может произойти, если сервер перестраивается (новое оборудование без сохранения ключей ssh-сервера, или сценарий взрыва с орбиты). Это также может произойти, если есть несколько серверов с разными ключами, которые используют одно и то же имя хоста (например, за балансировщиком нагрузки).
Кроме того, ssh-серверы обычно имеют несколько ключей хоста разных типов (rsa, dsa, ecdsa, ed25519 ...), поэтому вы можете увидеть другой отпечаток ключа при использовании одного клиента по сравнению с другим клиентом, в зависимости от того, какой обмен ключами согласован. Однако любой данный клиент всегда должен получать один и тот же ключ от сервера, если ни конфигурация клиента, ни сервера не изменяется.
2) Есть ли способ подавить проверку отпечатков пальцев только для локальных адресов, то есть в диапазоне 192.168.1.1-254
Да. На странице руководства ssh_config параметры CheckHostIP
и StrictHostKeyChecking
влияют на это поведение. Чтобы подавить эти проверки для всех имен хостов, начинающихся с "192.168.1." за которым следуют от одного до трех символов, используйте
Host 192.168.1.?,192.168.1.??,192.168.1.???
CheckHostIP no
StrictHostKeyChecking no
. Обратите внимание, что шаблоны , поддерживаемые в предложении Host
, не являются полными регулярными выражениями или командами оболочки, а соответствуют строке только с одним символом ?
и жадными подстановочными знаками *
. Следовательно, если кому-то удалось зарегистрировать 1.com
, то этот шаблон также будет соответствовать удаленному серверу 192.168.1.com
.
Использование жадного глобуса упростит раздел конфигурации Host 192.168.1. *
, но также позволит сопоставить более широкий диапазон смешанных буквенно-цифровых имен, таких как 192.168.1. evil.qwerty.org
. Вероятность непреднамеренного подключения (без проверки ключа хоста) к такому серверу очень мала; однако хорошо знать, что это просто строковый глобус, а не что-то, что обязательно будет анализироваться как адрес подсети только потому, что он выглядит как таковой.
~ /.ssh / config:
host 192.168.1.*
CheckHostIP no
StrictHostKeyChecking no