Этот вопрос касается конфигурации SSH на стороне хоста клиента, когда известно, что сертификат HOST сервера скомпрометирован.
Вкратце: как отозвать сертификаты SSH HOST, какие файлы необходимо обновить на хостах КЛИЕНТА, чтобы сертификат, предложенный отвечающим сервером во время попытки подключения ssh, распознавался как отозванный сертификат?
Расширенная версия: Сертификаты КЛИЕНТА:
Каждый пользователь генерирует пару ключей, отправляет открытый ключ ЦС КЛИЕНТА, который генерирует сертификат клиента и возвращает его пользователю. Пользователь помещает сертификат (оканчивающийся на -cert.pub) вместе со своим закрытым ключом, и он загружается с помощью ssh-add, когда он добавляет закрытый ключ и передает парольную фразу.
Открытый ключ ЦС КЛИЕНТА указан в файле доверенных ЦС хостов сервера, а демон sshd авторизует подключение пользователя, поскольку ЦС присутствует в этом файле. Он также проверяет другие условия, указанные в сертификате, такие как не истек срок действия и учетная запись в принципалах пользователей. Сервер также проверяет, был ли отозван сертификат для файла отозванного пользователя. Поэтому, когда закрытый ключ и сертификат пользователя были скомпрометированы, как только CA получает уведомление, он отзывает сертификат и распространяет его на файлы отозванных пользователей хоста сервера.
Следовательно, скомпрометированный ключ и сертификат больше не представляют угрозы после обновления файлов отозванных пользователей.
Сертификаты HOST:
Каждый хост-узел имеет сертификат хоста, подписанный HOST CA. У каждого клиентского узла есть файл глобальных известных хостов, обычно / etc / ssh_known_hosts, который был обновлен, чтобы содержать запись для данного CA HOST. Но, похоже, нигде нет отозванного файла hosts.
Когда пользователь на клиентском узле пытается подключиться к хосту сервера по ssh, ssh (на клиентском хосте) принимает сертификат хоста, предлагаемый хостом сервера, поскольку открытый ключ подписывающего органа, подписавшего этот сертификат, находится в файле ssh_known_hosts.
Но где и когда этот сертификат хоста проверяется на предмет аннулирования? Файл отозванных пользователей на хостах применяется к клиентским сертификатам, касающимся ВХОДЯЩИХ соединений. Сертификаты HOST должны проверяться SSH на ИСХОДЯЩИХ соединениях с хостами серверов, предлагаемый сертификат необходимо проверять на предмет отзыва SSH на стороне клиента. Если это не было сделано, ЕДИНСТВЕННЫЙ способ восстановления после взлома ключа хоста и сертификата заключался бы в том, чтобы сам ЦС стал ненадежным и был удален из / etc / ssh_known_hosts на клиентской хост-системе. Это будет означать, что все хосты с сертификатами, подписанными одним и тем же CA, также будут отображаться как неизвестные хосты.
Итак, что и где мы помещаем отозванную информацию HOST на стороне клиентского хоста, чтобы ssh распознавал сертификаты хоста как отозванные и идентифицировал HOST как ненадежный?
Заранее спасибо
openssh определяет для этого параметр конфигурации.
Добавьте следующую строку в / и т.д. / ssh / ssh_config:
RevokedHostKeys / etc / ssh / revoked_host_keys
Этот файл должен существовать и быть доступным для чтения, иначе все ключи хоста будут отклонены. Файл может содержать открытый ключ на строку для каждого отозванного ключа хоста. Или это может быть более компактный файл KRL.
ssh-keygen может создать файл KRL из такого текстового файла.
См. Man ssh-keygen и man ssh_config для получения дополнительной информации.
Румянец .. Я отвечаю на свой вопрос. Извините, что беспокою всех, я везде искал ответ на свой вопрос, но нашел свой ответ только после публикации вопроса.