понедельник, 4 июня 2012 г.

Несколько ssh-ключей одного хоста

Собственно проблема: имеется несколько серверов, управляемых pacemaker'ом. Если мастер-сервер вышел из строя его IP-адрес подхватывает другой, но в этом случае его ssh-ключ (ключ хоста) изменяется и при попытке подключиться по этому публичному адресу мы получаем примерно следующее сообщение:
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  
 @  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 a host key has just been changed.  
 The fingerprint for the RSA key sent by the remote host is  
 [...].  
 Please contact your system administrator.  
 Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.  
 Offending RSA key in /home/user/.ssh/known_hosts:86  
 RSA host key for [...] has changed and you have requested strict checking.  
 Host key verification failed.  
Имеется 2 варианта решения:
  1. Отказаться от уникального ключа на каждом сервере, сделать один и раскидать по серверам. Имхо, это не очень правильно.
  2. Объяснить ssh-клиенту что у одного хоста может быть несколько ключей
Собственно реализация второго варианта
  • Получаем ключ сервера:
    $ ssh-keyscan server_ip
    # server_ip SSH-2.0-OpenSSH_5.9p1
    server_ip ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDir2790....
    
  • Полученную строчку добавляем в наш ~/.ssh/know_hosts
Теперь при подключении к одному и тому же адресу, но уже к другому серверу, ssh-клиент ругаться не будет, а сделает то что от него хотели. Эффект достигнут.

Комментариев нет:

Отправить комментарий