Что вы на самом деле удаляете
Личный токен доступа (PAT) — это один из нескольких учётных данных, которые могут действовать от имени вашей учётной записи GitHub. Прежде чем что-либо удалять, полезно понять, какой именно тип учётных данных перед вами, потому что шаги удаления и побочные эффекты различаются.
| Учётные данные | Что обычно делают | Где управляются | На что влияет удаление |
|---|---|---|---|
| Личный токен доступа (с детализацией или классический) | Позволяет скриптам, инструментам или CI действовать от вашего имени с ограниченными правами | Настройки → Настройки разработчика → Личные токены доступа | Всё, что всё ещё использует этот токен, а также любой ключ развёртывания, созданный этим токеном |
| OAuth-авторизация | Стороннее приложение, которому вы разрешили действовать от имени вашей учётной записи | Настройки → Приложения (авторизованные OAuth-приложения) | Доступ этого приложения; само приложение не удаляется |
| SSH-ключ аккаунта | Аутентифицирует операции Git по SSH для вашей учётной записи | Настройки → SSH- и GPG-ключи | SSH-доступ, который полагается на этот ключ |
| Сессия браузера | Активная сессия с выполненным входом в браузере | Элементы управления выходом и настройки сессий | Только эта сессия; это не токен и не ключ |
Эта статья охватывает первую строку. Остальные строки перечислены, чтобы вы не перепутали одно с другим: удаление OAuth-авторизации или SSH-ключа не удаляет личный токен доступа, а удаление токена не отзывает SSH-ключи и не завершает сессии браузера.
Шаг 1: Составьте опись токенов, не раскрывая их значений
Цель — список имён токенов и мест, где каждый используется, а не список строк токенов. Относитесь к значению токена как к секрету, который вы никогда не копируете в заметки, тикеты или чат.
- Откройте настройки своей учётной записи GitHub и перейдите в «Настройки разработчика», затем в «Личные токены доступа». Проверьте и «Токены с детализацией», и «Классические токены», так как эти два типа перечислены отдельно.
- Для каждого токена запишите только: имя токена, его тип (с детализацией или классический) и любую заметку, которую GitHub показывает о его назначении или сроке действия.
- Для каждого токена запишите, где, по вашему мнению, он используется: задание CI, скрипт развёртывания, локальный инструмент, запланированная задача, сторонняя интеграция или нигде, что вы можете вспомнить.
- Отметьте токены, которые вы не можете определить. Неопознанный токен — кандидат на проверку, а не на автоматическое удаление: что-то всё ещё может от него зависеть.
Достаточно простой рабочей таблицы:
| Имя токена | Тип | Известный потребитель | Последнее известное использование | Решение |
|---|---|---|---|---|
| example-deploy | С детализацией | Задание CI-развёртывания | Неизвестно | Проверить задание перед удалением |
| example-old-script | Классический | Не найдено | Старый | Проверить, затем удалить |
Не вставляйте значения токенов в эту таблицу. Если потребитель хранит токен, проверьте конфигурацию этой системы, а не перечитывайте секрет.
Шаг 2: Проверьте зависимую автоматизацию перед удалением
Удаление токена нарушает работу всего, что всё ещё аутентифицируется с его помощью. Перед удалением подтвердите каждого известного потребителя:
- Просмотрите конфигурацию CI, скрипты развёртывания и запланированные задания на предмет ссылок на имя токена или запись в хранилище секретов, где он хранится.
- Проверьте, соответствуют ли разрешения токена тому, что нужно потребителю. Токен, который выглядит неиспользуемым, может быть единственными рабочими учётными данными для небольшого задания.
- Решите по каждому токену: сохранить, заменить более узкими учётными данными или удалить. Если вы не можете подтвердить потребителя, приостановитесь, а не гадайте.
GitHub документирует одну конкретную зависимость, которую стоит проверить в первую очередь: личный токен доступа, создавший ключ развёртывания, связан с этим ключом развёртывания.
GitHub предупреждает, что удаление личного токена доступа, создавшего ключ развёртывания, также удаляет этот ключ развёртывания. Источник
Это предупреждение узкое. Оно относится к ключам развёртывания, созданным этим токеном. Это не утверждение, что удаление любого токена влияет на каждый SSH-ключ, каждый ключ развёртывания или каждую интеграцию в учётной записи. Проверьте историю конкретного токена и ключи развёртывания репозитория, а не предполагайте широкий эффект.
Шаг 3: Удалите токен
Когда вы подтвердили, что токен безопасно удалить, документированный путь GitHub таков:
Документированный путь GitHub для удаления личного токена доступа: «Настройки» → «Настройки разработчика» → «Личные токены доступа», затем «Токены с детализацией» или «Классические токены» и «Удалить». Источник
После удаления проверьте результат, а не предполагайте, что всё сработало:
- Убедитесь, что токен больше не отображается в списке для своего типа.
- Запустите или инициируйте автоматизацию, которую вы определили как потребителя, и проверьте, проходит ли она аутентификацию. Если она завершается ошибкой, вы нашли зависимость, которую пропустили; восстановите доступ с помощью новых учётных данных, которые вы контролируете, а не повторно используйте старое значение.
- Если удалённый токен создал ключ развёртывания, проверьте ключи развёртывания репозитория, чтобы подтвердить, что документированное удаление произошло и что другие ключи не затронуты.
Пути сбоя, к которым нужно быть готовым
| Ситуация | Что делать |
|---|---|
| Задание CI завершается ошибкой после удаления | Определите, какой секрет оно использовало, подтвердите владельца задания и выпустите замену учётных данных через ваш обычный процесс |
| Вы не можете найти потребителя токена | Не удаляйте наугад; сначала поищите в конфигурационных файлах и хранилищах секретов и сохраняйте токен, пока не сможете подтвердить |
| Ключ развёртывания исчез | Это документированное последствие, когда токен его создал; воссоздайте ключ намеренно, если репозиторий всё ещё в нём нуждается |
| Вы не уверены, является ли учётные данные токеном или OAuth-приложением | Проверьте раздел настроек, в котором они отображаются; эти два управляются отдельно |
Что этот чек-лист не охватывает
Это руководство не описывает ротацию учётных данных, выпуск новых токенов или изменение разрешений — эти шаги зависят от вашей собственной конфигурации и текущего интерфейса GitHub, которые следует подтвердить в момент действия. Оно также не охватывает удаление OAuth-авторизаций, SSH-ключей аккаунта или сессий браузера, кроме упоминания, что они отдельные. Удаление токена удаляет эти учётные данные; это само по себе не доказывает, что какие-либо данные, хранящиеся в подключённом сервисе, были стёрты.
Где поиск по имени пользователя уместен, а где нет
Если ваша очистка является частью более широкого обзора того, что публично видно под именем пользователя, TraceSeek — это отдельное приложение, которое проверяет известные публичные имена пользователей на 3 000+ платформах. Оно сообщает о публичных совпадениях, которые являются зацепками, а не доказательством владения, и не может входить в учётные записи, изменять настройки учётной записи, удалять токены или проверять чью-либо реальную личность. Это не инструмент для доступа к закрытым учётным записям или гарантированного удаления чего-либо. Для задачи с токеном в этой статье работа происходит в настройках GitHub, а не в приложении для поиска.