Храним Access token к Git* в GNOME Keyring

В рамках одного проекта появилась потребность на 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

Важные моменты: - Хранилище должно быть разблокировано (например автоматически при входе в систему) - При блокировке сессии хранилище остаётся доступным

Храним Access token к Git* в GNOME Keyring | Сетка — социальная сеть от hh.ru