Концепция безопасности заключается в том, что вы выполняете ручную / внеполосную проверку отпечатка пальца сервера один раз для каждого нового сервера, к которому вы подключаетесь, чтобы убедиться, что вы подключаетесь к фактическому серверу, к которому хотите получить доступ, и что вы не подключение к неправильному серверу, посреднику или другому злоумышленнику.
Когда отпечатки пальцев совпадут, вы добавите ключ сервера к своим known_hosts, и вам будет предложено снова, только когда внезапно этот доверенный ключ больше не будет предлагаться сервером. В этом случае либо ключ сервера изменился, либо имеет место нечестная игра, но в любом случае вам необходимо провести расследование.
На практике, и особенно в больших средах, ручная проверка отпечатков пальцев часто нецелесообразна. Запуск ssh-keyscan
может быть целесообразно заполнить known_hosts (один раз), но предполагается, что в настоящее время нет MITM или других нечестных действий. Текущий статус будет принятым базовым уровнем, и вы сможете обнаруживать только будущие изменения ключа сервера.
Это снимает часть безопасности, но может быть приемлемым риском.
Чтобы вернуться к любому ключу сервера, который был случайно принят как доверенный, его необходимо удалить из файла known_hosts.
Ваши варианты:
- удалить все ключи доверенного сервера, полностью удалив
Ë/.ssh/known_hosts
- редактировать вручную
Ë/.ssh/known_hosts
и удалите строки с конкретной записью для серверов.
Если вы обращались к удаленному серверу разными способами, например, используя как имя хоста, так и IP-адрес, ключи сервера для каждого из них могут быть в known_hosts.
- иногда имена хостов в
Ë/.ssh/known_hosts
хешируются (когда HashKnownHosts
директива для ssh включена) вы не можете редактировать вручную Ë/.ssh/known_hosts
и вы должны использовать ssh-keygen -R ИМЯ ХОСТА
чтобы удалить сохраненный ключ для этого HOSTNAME. Опять же, могут быть разные записи для имени хоста, hostname.example.com и IP-адреса этого хоста.