Как отозвать сертификат ssh (не файл идентификации ssh!)

13

Я сгенерировал сертификат SSH, как это:

  1. ssh-keygen -f ca_key # создать пару ключей ssh ​​для использования в качестве сертификата
  2. генерировать ключ хоста ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
  3. укажите ключ хоста в конфигурационном файле sshd сервера: TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
  4. генерировать локальный сертификат для доступа хоста , используя SSH сертификат: ssh-keygen -s ca_key -I cert_identifier user_key.pub. Это должно генерировать user_key-cert.pub

Теперь я могу войти на сервер с помощью ssh -i user_key user@host(который использует user_key-cert.pub). Как я могу отозвать сертификат, кроме отключения файла TrustedUserCAKeys?

rorycl
источник
Об этом есть обсуждение в списке openssh здесь gossamer-threads.com/lists/openssh/dev/… - Я не думаю, что есть элегантный способ отозвать сертификат.
rorycl

Ответы:

13

sshd_config имеет файл RevokedKeys. В нем можно перечислить несколько ключей или сертификатов, по одному на строку. В будущем OpenSSH будет поддерживать отзыв по серийному номеру сертификата, что сделает списки отзыва намного меньшими.

Дэмиен Миллер
источник
-3

Они могут представлять интерес для вас:

CARevocationFile /path/to/bundle.crl Этот файл содержит несколько «списков отзыва сертификатов» (CRL) лиц, подписавших сертификаты в формате PEM, соединенных вместе.

CARevocationPath / path / to / CRLs / "Хэш-каталог" с "Списком отзыва сертификатов" (CRL) подписавших сертификат. Каждый CRL должен храниться в отдельном файле с именем [HASH] .r [NUMBER], где [HASH] является значением хеш-функции CRL, а [NUMBER] является целым числом, начинающимся с нуля. Хеш является результатом такой команды: $ openssl crl -in crl_file_name -noout -hash

(первые 3 поиска в Google по запросу "ssh ca revoke" ...)

draeath
источник
Сертификаты ssh используют не сертификаты формата PEM, а собственный формат, поэтому это не сработает.
rorycl
OpenSSH не реализует CARevocationFile в прошлый раз, когда я проверял (возможно, изменился недавно).
Крис С
1
Хм, ты прав. Я не думаю, что это возможно.
draeath