known_hosts – что это и как работает SSH known_hosts файл | Глоссарий FREEHOSTING

known_hosts

SSH known_hosts File
known_hosts — Файл known_hosts хранит публичные ключи SSH-серверов, которым пользователь доверяет, предотвращая атаки 'man-in-the-middle' путём проверки подлинности сервера при подключении.

Определение простыми словами

Файл known_hosts — это специальный файл на клиентском компьютере, в котором хранятся публичные ключи удалённых SSH-серверов. Когда вы подключаетесь к серверу через SSH, система проверяет этот файл, чтобы убедиться, что сервер — тот, кому вы доверяете. Это помогает предотвратить атаки посредника (man-in-the-middle), когда злоумышленник пытается выдать себя за сервер и перехватить данные.

Если ключ сервера отсутствует в файле, SSH-клиент предупреждает пользователя и предлагает подтвердить новый ключ. Таким образом known_hosts служит первой защитной линией в установлении безопасного соединения по SSH.

Сравнение

Особенность known_hosts authorized_keys
Расположение Клиент Сервер
Назначение Хранит публичные ключи серверов для проверки Хранит публичные ключи клиентов для доступа
Контекст использования Проверка подлинности сервера Авторизация клиента
Обновление Автоматически или вручную при первом подключении Вручную администратором сервера

Кейсы использования

  • Автоматическое подтверждение подлинности часто посещаемых серверов.
  • Управление безопасностью при массовом администрировании серверов.
  • Скрипты и автоматизация для обновления файла known_hosts в крупных инфраструктурах.
  • Обеспечение безопасности SSH-подключений в корпоративных сетях.
  • Отслеживание и предупреждение при смене ключа сервера (возможное свидетельство атаки).

Негативный пример: Игнорирование предупреждений SSH о несовпадении ключа сервера и автоматическое игнорирование изменений — ведёт к повышенному риску взлома через атаки man-in-the-middle.

Технические детали

Формат файла known_hosts — текстовый, каждая строка соответствует одному известному серверу и содержит:

  • Хост (имя или IP-адрес, иногда с хэшированием)
  • Тип ключа (например, ssh-rsa, ecdsa-sha2-nistp256)
  • Публичный ключ сервера в base64

Пример записи:

github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7w4q9...

Для управления содержимым используют команды SSH-клиента, например, удаление записи:

ssh-keygen -R github.com

Путь к файлу по умолчанию: ~/.ssh/known_hosts.

Подробнее на страницах: SSH, authorized_keys, ssh-keygen.

Частые вопросы

Что происходит, если ключ сервера изменился?

SSH клиент выдаст предупреждение о несоответствии ключа, чтобы предотвратить возможную атаку man-in-the-middle.

Можно ли вручную редактировать файл known_hosts?

Да, но для удобства и безопасности рекомендуется использовать команды ssh-keygen.

Что значит хэширование в known_hosts?

Хэширование скрывает реальные имена хостов, повышая конфиденциальность при хранении в файле.