Я запускаю рабочий стол Ubuntu с кучей виртуальных серверов в Virtual Box для тестирования и т. Д. В прошлом я также подключался к другим типам удаленных VPS Linux-боксов. В настоящее время мой .ssh/known_hosts
файл содержит целую кучу ключей, большинство из которых больше не используются.
Я хочу очистить свой .ssh/known_hosts
файл, но как узнать, какой ключ принадлежит какому хосту? Т.е. как мне узнать, какие ключи я могу безопасно удалить, а какие оставить?
ssh-keyscan
имеет очень строгие правила форматированияlist_of_hosts
файла. Это должен быть просто адрес, а не другие пробелы после LF после каждого адреса. Это включает в себя LF после последнего адреса. В противном случае вы получите много мусора в сгенерированном файле.С трудом...
Ubuntu по умолчанию хэширует имена хостов в файле known_hosts (это не стандартное поведение openssh), чтобы любому, кто читает файл, было трудно узнать, к каким системам вы обращаетесь.
Если вы действительно хотите очистить файл, возможно, самый простой вариант - просто удалить его и проверить ключи тех серверов, о которых вы знаете, по мере их появления, но на самом деле я бы просто оставил known_hosts в покое.
Вы можете остановить хэширование новых записей хостов, закомментировав параметр в / etc / ssh / ssh_config
источник
ssh root@something-new-or-new-dns-alias
. Это обновит исходныйknown_hosts
файл и расшифрует имена хостов / IP-адреса.У меня было более 300 устаревших записей в моем файле known_hosts. Не уверен, что он будет работать для всех систем (или даже для большинства систем), но вот мой сценарий вопросов и ответов. Возможно, вам придется настроить соответствующие строки или местоположение.
источник
known_hosts
файлом, и поскольку спрашивающий спрашивает: «Как я узнаю, какой ключ принадлежит какому хосту», я думаю, очень вероятно, что его файл хэширован. Он говорит, что он в Ubuntu, и, какtheotherreceive
говорится, Ubuntu хеширует по умолчанию.