Как обновить SSHD без смены ключа сервера?

Как обновить SSHD без смены ключа сервера?

Итак... нам нужно обновить SSHD. Как это сделать, не имея проблемы с тем, что люди (которые входят через 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
0e:a1:b1:40:85:a2:a7:03:17:1b:52:8f:10:c7:b3:d0.
Please contact your system administrator.
Add correct host key in /home/USERNAME/.ssh/known_hosts to get rid of this message.
Offending key in /home/USERNAME/.ssh/known_hosts:13
RSA host key for [192.168.1.1]:22 has changed and you have requested strict checking.
Host key verification failed.

решение1

Простое обновление sshd обычно не заменит ключ хоста. Так что да, просто обновите его, и все будет в порядке.

Примечание: Обычно вам это не понадобится, но если вы хотите быть в безопасности, вы можете создать резервную копию ключей хоста ssh и скопировать их обратно после обновления системы. Обычно вам придется сделать резервную копию /etc/ssh/ssh_host*. Если что-то пойдет не так, вы сможете восстановить файлы позже.

решение2

Я понимаю, что это старый вопрос, но я думаю, что это допустимое дополнение для будущих поисков. Обновление вашего sshd не должно приводить к повторному созданию ключа хоста, так что вы в порядке с обновлением. Однако обновление вашего сервера может привести к созданию нового ключа хоста. Сообщение, которое вы описываете, появляется, когда клиент ssh не распознает ключ хоста сервера, поэтому все, что изменяет ключ хоста, вызовет эту проблему.

Один из способов обойти это — переделать использование ssh на использование сертификатов вместо паролей и ключей. Хотя это требует некоторой работы и небольшой переделки, но это того стоит, если вы хотите лучше подписывать свои серверы. Вот очень хорошее руководство:

http://neocri.me/documentation/using-ssh-certificate-authentication/

По сути, вы создаете CA для серверов и CA для пользователей, а затем используете их для аутентификации клиентов и серверов соответственно. Вы все равно увидите сообщение выше, если войдете в систему с именем пользователя/паролем, но для любого, кто входит в систему с сертификатами, единственное, что имеет значение, это то, что сертификат хоста сервера подписан CA сервера.

Связанный контент