Введение
В современной разработке обеспечение целостности и подлинности исходного кода имеет первостепенное значение. Git позволяет криптографически подтвердить, что изменения были внесены доверенным автором. Использование аппаратного токена (Рутокен MFA) с поддержкой FIDO2 для хранения SSH-ключей подписи дает следующие преимущества:
- Неотрекаемость (Non-Repudiation): Криптографическое доказательство того, что изменения внесены владельцем токена.
- Аппаратная защита: Закрытый ключ никогда не покидает пределы Рутокен MFA, что защищает его от компрометации через вредоносное ПО на рабочей станции.
- Гарантия присутствия пользователя: Каждая операция подписи требует физического подтверждения (касания/ввода PIN), что исключает фоновое или автоматическое подписание злоумышленником.
- Упрощение управления ключами: Использование SSH-ключей для подписи избавляет от необходимости поддерживать сложную инфраструктуру GPG-серверов.
- Подтверждение подлинности на GitHub и GitLab — коммиты могут отображаться со статусом Verified.
Данная инструкция описывает настройку Git для использования SSH/FIDO2-ключей на аппаратном токене Рутокен MFA при подписании коммитов и тегов.
Предварительные требования
Необходимо наличие:
- Аппаратного токена с поддержкой FIDO2/WebAuthn (Рутокен MFA).
- Git версии 2.34 или новее.
Проверка версии:
git --version
- OpenSSH версии:
- OpenSSH 8.2 или новее — базовая поддержка FIDO2 SSH-ключей.
- OpenSSH 8.3 или новее — поддержка параметра -O verify-required.
Проверка версии:
ssh -V
- Настроенного PIN-кода FIDO2 на токене (рекомендуется для resident-ключей).