Удаление хоста с ssh known hosts
- Подробности
- Просмотров: 17682
Если Вы работали с сервером по ssh, то наверняка знаете о такой штуке как known hosts. Это та самая штука, которая запоминает отпечатки (fingerprint) всех серверов, которые Вы посещаете и не поволяет сливать пароли и секретные ключи, если отпечаток не совпал. Она просто Вас не пустит дальше, обьясняя это тем, что Вас пытаются обмануть.
Но когда Вы переустанавливаете ОС на сервере и не переносите настройки sshd, то всё будет аналогично. Ну ещё бы, откуда ему знать, что это Вы стали причиной изменения отпечатка...
Тогда нужно стереть запись про этот сервер на клиенте. Проще всего это сделать командой:
$ rm ~/.ssh/known_hosts
Но это удалит данные про все сервера, а нас это не очень то устраивает. Хотя если Вы работаете только с одним сервером, то почему бы и нет. Хотя на практике это крайне редко, даже если Вы думаете иначе.
Нужно ещё добавить, что расположение файла может быть и другим, если в конфиге ssh указано это директивой UserKnownHostsFile.
Если же Вам нужно удалить конкретный хост, то почему бы не открыть файл в текстовом редакторе и не удалить нужную строчку. Ну что, логично и так можно сделать, если у Вас на клиенте не включена опция HashKnownHosts. Если же она включена, то найти нужную строчку будет проблематично.
Но удалить запись всё-таки можно, командой:
$ ssh-keygen -R host.com
Это удалит запись об указанном сервере и можно повторно зайти на него и подтвердить подлинность уже нового отпечатка.