26 апр. 2011 г.

Отключение ssh fingerprints

В клиенте ssh имеется замечательный механизм защиты от возможных Man-In-The-Middle атак при работе с удаленными хостами. При попытке подключиться к ранее неизвестному хосту впервые считывается его fingerprint
The authenticity of host 'example.com (192.168.0.1)' can't be established.
RSA key fingerprint is 0e:33:94:9b:83:b1:d8:02:81:42:0f:0e:4c:c2:cd:98.
Are you sure you want to continue connecting (yes/no)?
и записывается в файл ~/.ssh/known_hosts
Warning: Permanently added 'example.com,192.168.1.1' (RSA) to the list of known hosts.
Впоследствии при подключениях он проверяется. Если если запомненный и высчитанный фингерпринты не совпадают, соединение сбрасывается (так как, возможно, мы пытаемся подключиться не туда, куда хотели)
:~$ ssh interra@192.168.0.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
e5:98:85:24:bd:62:f1:2f:9a:ab:f5:9f:24:e8:88:5c.
Please contact your system administrator.
Add correct host key in /home/delayer/.ssh/known_hosts to get rid of this message.
Offending key in /home/delayer/.ssh/known_hosts:212
RSA host key for 192.168.0.1 has changed and you have requested strict checking.
Host key verification failed.
Однако у меня в локалке это вызывает сильное неудобство, так как в сети часто появляются новые хосты (сервер приехал, настроился, уехал), которые получают одни и те же IP-адреса из заданного пула. И каждый раз приходится удалять запись о старом фингерпринте из known_hosts
Дабы этого не делать, а полностью отключать этот в целом полезный механизм, изменяем настройки ssh следующим образом (глобально - в /etc/ssh/ssh_config; для пользователя - ~/.ssh/config):
Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null
И все, при подключении к хостам сети 192.168.0.0/24 фингерпринт проверяться не будет.

4 комментария:

  1. >И все, при подключении к хостам сети 192.168.0.0/24 фингерпринт проверяться не будет.

    Для тестово-установочной сети будет удобно, спасибо. Но вы чувствуете ответственность за хомячков, которые не подумав скопипастят конфиг? :)

    >Offending key in /home/delayer/.ssh/known_hosts:212

    Удалить старый ключ можно командой:

    ssh -ie 212d ~/.ssh/known_hosts

    ОтветитьУдалить
  2. "Позаимствую" (с)
    А хомячки - не знаю, не думал, признаться, что им это актуально...

    ОтветитьУдалить
  3. >ssh -ie 212d ~/.ssh/known_hosts

    Моя невнимательность... sed конечно, а не ssh:

    sed -ie 212d ~/.ssh/known_hosts

    ОтветитьУдалить
  4. Признаться, не обратил внимания ;)

    ОтветитьУдалить