В рамках одного проекта появилась потребность на Astra Linux взаимодействовать с внешним Git-репозиторием по HTTPS. Для аутентификации без использования стандартных учётных данных был создан персональный токен доступа. Возник вопрос о наиболее безопасном способе его хранения. Встроенные механизмы Git, такие как `credential.helper store` и `credential.helper cache`, не подходили - первый просто сохраняет данные в открытом виде в файле, а второй, помимо аналогичной проблемы с безопасностью, оказался менее удобным в использовании. Установка дополнительных пакетов была невозможна. Изучая документацию Git, наткнулся на возможность создания кастомной реализации для предоставления Git учетных данных. Оставалось найти надёжное место для хранения токена. Решение нашлось в виде **GNOME Keyring** - компонента, который поставляется из коробки в Desktop-версии системы. Используемые инструменты: - GNOME Keyring — встроенное хранилище секретов - Seahorse — графический интерфейс для работы с ключами - Secret-tool — консольная утилита для взаимодействия с хранилищем Для начала добавим токен в хранилище: secret-tool store --label="<описание>" <атрибут> <значение атрибута> Пример команды: secret-tool store --label="Git Personal Access Token" git token После выполнения утилита запросит ввод токена. Далее подготовим bash-скрипт для получения учётных данных(для удобства у нас доменный пользователь): #!/bin/bash echo "username=$USER" echo "password=$(secret-tool lookup git token)" Сохраняем файл, например, в `~/.git-credentials.sh` Завершаем нашу настройку конфигурированием `credential.helper`: git config --global credential.helper "/bin/bash ~/.credentials.sh" Важные моменты: - Хранилище должно быть разблокировано (например автоматически при входе в систему) - При блокировке сессии хранилище остаётся доступным
15 часов назад