
Я получаю разные ключи каждый раз, когда запускаю ssh-keyscan -H some.hostname.example
. Почему так? Сервер постоянно меняет ключи?
Ключи, которые я получаю при одном запуске, похоже, работают даже после последующего запуска, потому что я не получаю никаких предупреждений при ssh
входе на сервер, хотя я сохранил один набор ключей в ~/.ssh/known_hosts
.
Редактировать: Я ошибался, ключи не меняются, однако первый столбец (с именем хоста) меняется. Он находится в форме |1|<something base64>|<something else base64>
. Я не совсем уверен, что закодировано в base64, но, похоже, это двоично.
решение1
Часть имени хоста хэшируется. Одно и то же имя/IP может иметь разные хэши (помните, вы использовали ssh-keycheck -H). Так что это нормальное поведение.
решение2
Ответ здесьhttps://security.stackexchange.com/questions/56268/ssh-benefits-of-using-hashed-known-hostsподробно объясняет, как выполняется хеширование.
Суть в том, что он включает "соль" (случайные дополнительные данные), чтобы не иметь одинаковый хэш и упростить предварительное вычисление хэшей для множества входных текстов. Соль случайна, но показана, а не хэширована сама по себе.