Защита от перехвата сессии
При подключении к серверу клиент SSH показывает пользователю идентификационные данные сервера, чтобы пользователь мог удостовериться в том что сервер, к которому он подключается является тем за кого он себя выдаёт. Эти идентификационные данные серверов сохраняются в файле $HOME/.ssh/known_hosts. В кратце, каждый сервер SSH имеет секретный, уникальный идентификатор, называемый ключ хоста (host key) для идентификации себя клиентам.
Структура записи
Маркер
@cert-authority - запись, которая начинается с этого маркера указывает на то, что она принадлежит удостоверяющему центру (УЦ, CA) SSH. CA SSH отличается от CA TLS.
@revoked - данный маркер указывает на то, что сервер был скомпроментирован и ему доверять нельзя. Клиент не будет заходить на этот сервер ни при каких обстоятельствах. Если всё же попытаться, то можно увидеть такое сообщение:
Имя хоста
Для SSH это идентификатор сервера. Он может быть в виде имени или IP или того и другого сразу. У одного и того же сервера может быть несколько имён или IP-адресов, их все можно перечислить через запятую и без пробелов. Если ваш файл клиент SSH хеширует имена в known_hosts для их сокрытия, то вместо имён и IP можно увидеть их хеш вида |1|WKVnumD2AbTgKnjxtyueHX/ZLgg=|rt7jI/wV4NGTsmtNzhQw1bagr/I=
Тип ключа
Это алгоритм, который был использован для генерации ключа. Сейчас используется 6 алгоритмов: ssh-dss (ключи DSA), ssh-rsa (ключи RSA), ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp512 (ключи ECDSA), и ssh-ed25519 (ключи ED 25519).
Публичный ключ
Это публичный ключ сервера - длинная строка, состоящая из букв, цифр и спецсимволов, обычно начинающаяся на A и заканчивающаяся на =
Комментарий
Обычно он пустой, но его вполне удобно использовать, особенно при централизованном распределении этого файла.
Получение данных ключа для создания записи в known_hosts
В этой записи есть имя хоста в виде IP, тип ключа и сам открытый ключ.
Распространение ключей хоста
Когда ключ хоста будет добавлен, изменён или удалён, пользователь увидит предупреждение об этом.
Распространение файла known_hosts
Когда пользователь часто видит предупреждение на своём экране, то он просто начинает его игнорировать. Поэтому смысл в распространении файа known_hosts состоит в том, чтобы убрать ненужные предупреждения у пользователя, чтобы он обращал внимание только на те, которые действительно этого заслуживают.