ИМХО Это не очень хорошая идея (см. Ниже).
Следующая команда удалит нарушающий ключ вашего хоста из known_hosts
ssh-keygen -R <host>
например, ssh-keygen -R my_old_client
Почему это не очень хорошая идея, можно поспорить из man ssh
(поиск вниз можно прочитать):
Кроме того, сервер должен иметь возможность проверять ключ хоста клиента (см. Описание /etc /ssh /ssh_known_hosts и ~ /.ssh /known_hosts ниже), чтобы разрешить вход в систему. Этот метод аутентификации закрывает дыры в безопасности из-за спуфинга IP-адресов, спуфинга DNS и спуфинга маршрутизации. [Примечание для администратора: /etc/hosts.equiv, ~ /.rhosts и протокол rlogin /rsh в целом небезопасны и должны быть отключены, если требуется безопасность.]
Еще несколько слов: если ssh
подсказывает вам, что ключ компьютера обычно меняется, то это потому, что вы переустановили ssh на этом компьютере или, возможно, вы принудительно перестроили ключи. Однако это больше не ключ ssh, который использовался в прошлый раз ... это может быть другой компьютер, который пытается получить эту идентичность. Если вы уверены, что это тот же компьютер, вы можете удалить / обновить поврежденный ключ и продолжить.
Всегда от man ssh
о том, как это работает:
ssh автоматически поддерживает и проверяет базу данных, содержащую идентификацию для всех хостов, с которыми она когда-либо использовалась.
Ключи хоста хранятся в ~/.ssh/known_hosts в домашнем каталоге пользователя. Кроме того, файл /etc/ssh/ssh_known_hosts
автоматически проверяется на наличие известных хостов. Любые новые хосты автоматически добавляются в файл пользователя. Если идентификация хоста когда-либо изменяется, ssh предупреждает об этом и отключает аутентификацию по паролю, чтобы предотвратить подделку сервера или атаки «человек посередине», которые в противном случае могли бы использоваться для обхода шифрования.
Параметр StrictHostKeyChecking можно использовать для управления входами в систему на компьютерах, ключ хоста которых неизвестен или изменился.