Слогер Создать блог
Разработка

Как провести аудит старого GitHub-аккаунта: ключи, токены и репозитории

Возраст профиля на GitHub сам по себе ничего не значит — имеет значение то, что в нём осталось включённым. Разбираем, как провести ревизию доступов и накопившихся проектов.

Аккаунт на GitHub, заведённый лет пять назад, обрастает хвостами незаметно. SSH-ключ с ноутбука, который давно продан. Токен для проекта, закрытого два года назад. Пара десятков авторизованных приложений, половину из которых вы уже не вспомните. И папка репозиториев, содержимое которых представляете смутно.

Возраст профиля сам по себе не делает его ни ценным, ни безопасным. Официального порога, после которого аккаунт считается «старым», не существует: у кого-то за плечами семь лет коммитов, у кого-то — три месяца и один серьёзный проект. Смотреть надо на содержимое.

Что накапливается в старом аккаунте

Публичные и приватные репозитории, форки, issues, пул-реквесты, обсуждения, звёзды, подписчики и подписки, членство в организациях, SSH-ключи, personal access tokens, авторизованные сторонние приложения, данные профиля. Любой из этих элементов можно забыть на годы.

Отдельная история — попытки купить чужой аккаунт «с историей». Профиль с чужими коммитами не станет вашим портфолио: нанимающий или мейнтейнер открытого проекта рано или поздно заметит разрыв между заявленным опытом и тем, что вы можете объяснить на созвоне. Плюс правила платформы такие сделки запрещают, и заблокировать могут вместе со всей историей. Привести в порядок свой профиль дешевле и надёжнее.

Возраст не равен репутации

Пятилетний профиль может выглядеть пустым: пара форков, ни одного своего репозитория, последний коммит три года назад. Свежий аккаунт с одним толковым проектом и внятным README производит куда более сильное впечатление.

На что реально смотрят: качество репозиториев, настоящие контрибуции, читаемость кода, документация, участие в обсуждениях, свежая активность, поддержка проектов и соблюдение правил сообщества. График контрибуций при этом ничего не доказывает — часть работы идёт в приватных репозиториях и во внутренних системах компаний, на публичном графике её не видно.

Много зелёных квадратиков в профиле не заменяют один проект, которым кто-то кроме вас пользуется.

Аудит безопасности: шесть точек, которые стоит пройти

Пароль и двухфакторная аутентификация

Пароль должен быть уникальным: тот же, что на форуме или в почте, — плохая идея. Генерацию лучше отдать менеджеру паролей. Двухфакторку включают и настраивают так, чтобы код можно было получить с устройства, к которому у вас точно есть доступ.

Восстановление доступа

За годы меняются телефоны, почтовые адреса, аутентификаторы. Резервные способы восстановления стоит проверять хотя бы раз в год — иначе однажды окажется, что подтвердить вход нечем. Коды восстановления хранят отдельно от устройства, а не в переписке с самим собой.

SSH-ключи

Старый аккаунт легко набирает ключи с машин, которых больше нет. Удалять их нужно после того, как компьютер продан, потерян или заменён, а также когда доступ больше не нужен коллеге или подрядчику. Ключ, о котором вы не помните, всё ещё открывает доступ к вашим репозиториям.

Personal access tokens

Токены, выданные под давно закрытые проекты, обычно живут дольше самих проектов. Проходить список стоит раз в несколько месяцев. При создании нового токена запрашивайте минимум прав — только те, без которых задача не решается.

Авторизованные приложения

Через OAuth за эти годы прошли CI, деплой, анализаторы кода, трекеры задач, автоматизация. Частью сервисов вы больше не пользуетесь, а доступ у них остался. Перед подключением нового приложения полезно прочитать, какие именно права оно просит и зачем.

Что попало в код

Пароли, токены, приватные ключи, доступы к базам и внутренние конфиги не должны лежать в публичном репозитории. Если файл с секретом уже ушёл в коммит, простое удаление не спасает: содержимое остаётся в истории версий. Нужны отдельные шаги — сменить сам секрет и почистить историю.

Ревизия репозиториев и профиля

Старый аккаунт часто похож на кладовку. Пройдите по репозиториям и решите по каждому: поддерживать, заархивировать, обновить, перевести в приватные или удалить. Архив — нормальный вариант для завершённого проекта, который жалко выбрасывать: он остаётся доступным для чтения и перестаёт притворяться живым.

У части старых проектов README не объясняет вообще ничего. Минимально полезный README отвечает на четыре вопроса: что это, как поставить, как пользоваться, в каком состоянии проект сейчас. Заодно стоит указать лицензию, если она есть.

Дальше по мелочи: разобрать форки и звёзды (половина давно потеряла смысл), проверить видимость репозиториев, выйти из организаций, с которыми вы больше не связаны, обновить имя, описание, ссылку и аватар. Закреплённые репозитории работают как витрина — туда логично ставить то, что актуально сегодня.

Таблица: что проверять и как часто

Что проверятьКак частоЧем рискуете, если забыть
Пароль и 2FAРаз в год и при смене устройстваВзлом аккаунта и доступ к репозиториям
Способы восстановленияРаз в годНевозможно подтвердить вход
SSH-ключиПосле продажи или потери техникиПосторонний доступ к вашим репозиториям
Personal access tokensРаз в несколько месяцевТокен с лишними правами живёт годами
Сторонние приложенияРаз в полгодаСервис читает и меняет код без нужды
Видимость репозиториевПри пересмотре проектовПубличными остаются данные, которые уже не должны быть видны
Членство в организацияхПосле смены работыДоступ к чужим репозиториям остаётся у вас

Типичные ошибки

  • Один пароль на GitHub и десяток других сервисов.
  • Двухфакторка включена, а резервный доступ настроен не был — и при потере телефона вход закрыт.
  • Восстановление и SSH-ключи не проверялись ни разу с момента регистрации.
  • Секрет закоммичен, а потом просто удалён файлом — история осталась.
  • Старые приватные проекты забыты, а внутри лежат ключи от рабочей инфраструктуры.

Что в итоге

Старый GitHub-аккаунт — это набор доступов, которыми кто-то может воспользоваться, и набор проектов, по которым о вас судят. Час раз в год на ревизию ключей, токенов и приложений плюс полчаса на README по каждому живому репозиторию — этого хватает, чтобы профиль не превращался в свалку, а накопленная история работала на вас.

По материалам: career. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.