В рамках проекта [[https://sobolevn.github.io/git-secret/ git-secret]] развивается простой плагин для Git, позволяющий хранить отдельные файлы в репозитории в зашифрованном виде. Например, шифрование может применяться к файлам с паролями, сертификатами и любыми другими конфиденциальными данными, которые не следует разглашать. В отличие от хранения подобных файлов отдельно от Git-репозитория, git-secret позволяет унифицировать обращение с приватной информацией и минимизировать угрозу её случайного добавления в репозиторий в открытом виде (например, периодически всплывают инциденты с размещением в публичных репозиториях файлов с паролями).
Git-secret написан на bash и использует GPG для шифрования. Работа организуется через применение команды "git secret reveal", которая расшифровывает все необходимые файлы с использованием персонального закрытого ключа. При коммитах помеченные конфиденциальными файлы будут приниматься только в зашифрованном виде.
Начало работы с git-secret (для шифрования в gpg должны быть созданы ключи RSA):
Инициализируем репозиторий git-secret (будет создан каталог .gitsecret/):
git secret init
Добавляем пользователя (name@pgp_email - связанный с RSA-ключами email):
git secret tell name@pgp_email
Помечаем секретные файлы (после данной операции git_secret не позволит поместить их в репозиторий без шифрования):
git secret add имена_файлов
Шифруем ранее помеченные файлы:
git secret hide
Шифрование производится при помощи открытого ключа, ранее переданного командой "git secret tell". Произвольное число разработчиков могут зашифровать файлы, но только владелец закрытого ключа может их расшифровать.
Теперь можно выполнять коммит. Чтобы не запускать команду "git secret hide" перед каждым коммитом, её рекомендуется прописать для автоматического вызова на стадии pre-commit.
Для расшифровки файлов необходимо выполнить команду:
git secret reveal
URL: https://sobolevn.github.io/git-secret/
Обсуждается: http://www.opennet.dev/tips/info/2969.shtml