Отзыв доступа¶
Забрать у сотрудника SSH-доступ — одно действие в админке. Но подействует оно по-разному: смотря чем сотрудник входит. Это главное, что здесь нужно понимать.
Два действия, а не одно¶
Ключ из реестра и сертификат — разные сущности, и отзываются они разными действиями в разных разделах. Отозвать одно и считать, что доступ забран, — самая частая ошибка.
| Что отзываете | Где | Что происходит |
|---|---|---|
| Ключ из реестра | SSH-ключи → «Отозвать» | Alatyr перестаёт отдавать его вашему серверу немедленно |
| Сертификат | Сертификаты → «Отозвать» | серийный номер попадает в список отзыва (KRL) |
Список отзыва наполняется только отзывом сертификата. Кнопка в разделе «SSH-ключи» туда ничего не кладёт — ей это и не нужно, потому что ваш сервер спрашивает Alatyr о ключах на каждый вход.
Чтобы забрать доступ целиком, сделайте оба — иначе останется та половина, которую вы не тронули.
Если сотрудник уходит из компании, отзовите ещё и цель ssh у его устройства
(Устройства → строка машины) либо отозвите устройство целиком. Пока цель
назначена, машина вправе просить новые сертификаты.
Отозванный ключ обратно не включается
Повторно одобрить отозванный ключ нельзя — сервер ответит отказом. Сотруднику, которому доступ вернули, агент заведёт новый ключ, и его снова нужно будет одобрить.
Сам агент замену после отзыва не заводит: отзыв — решение администратора, и молча подсовывать взамен новый ключ значило бы превратить отказ в неудобство.
Когда это подействует¶
| Чем входит сотрудник | Когда перестанет пускать |
|---|---|
| Ключ из реестра | немедленно — ваш сервер спрашивает Alatyr на каждый вход |
| Сертификат | когда ваш сервер обновит список отзыва |
| Сертификат, если список не обновлять | когда сертификат истечёт сам, не дольше 24 часов |
Окно, в котором отозванный сертификат ещё пускает, равно интервалу обновления списка отзыва. Задание раз в час — окно до часа, раз в 15 минут — до 15 минут. Настройка ставит расписание на час: сертификат живёт сутки, и час в этот срок укладывается.
Доверяете сертификатам — настройте и список отзыва
Если на вашем сервере есть TrustedUserCAKeys, но нет RevokedKeys,
забрать доступ вы не можете: отзовёте ключ, а впустит сертификат.
Выглядит это так:
Accepted publickey ... ECDSA SHA256:7wf4… ← до отзыва: ключ из реестра
Accepted publickey ... ECDSA-CERT ... serial 19206… ← после: сертификат
Ключ из реестра и сертификат — два разных механизма, и отзываются они по-разному.
Чем вошли на самом деле¶
sudo journalctl -u ssh | grep "Accepted publickey" # RHEL и SUSE: -u sshd
# ECDSA — ключ из реестра, отзывается мгновенно
# ECDSA-CERT — сертификат, отзывается через список отзыва
Это первое, что стоит посмотреть, если отзыв «не сработал».
Чего отзыв не делает¶
- Не разрывает открытые сессии. Кто уже вошёл, останется внутри до конца сессии. Если это неприемлемо, завершайте сессии на сервере отдельно.
- Не стирает ключ с устройства. Закрытая часть остаётся в чипе рабочей машины. Она просто больше никому не нужна: Alatyr за неё уже не ручается.
- Не отменяет доступ, выданный в обход Alatyr. Ключ, который кто-то руками
дописал в
authorized_keys, живёт своей жизнью. Если доступ сохраняется вопреки отзыву — проверьте этот файл.
Что дальше¶
- Настройка — поставить обновление списка отзыва по расписанию, чтобы отзыв сертификата доходил до вашего сервера.
- Нюансы и пределы — чего механизм не обещает, кроме описанного здесь.
- Реестр ключей и Keyholder API — разобраться, какие бывают статусы ключа и как устроен реестр.