Зашифровать git-репозиторий на сервере (безопасно от кражи физического оборудования)

11

У меня есть рабочий сервер (Ubuntu, работающий 24/7) с git-репозиторием и несколько клиентских компьютеров, на каждом из которых есть рабочая копия этого репозитория. На клиентских компьютерах простое использование шифрования домашней папки решает проблему, заключающуюся в том, что в случае кражи оборудования никто не может получить доступ к файлам в git.

Как я могу зашифровать удаленную сторону хранилища git, чтобы убедиться, что в случае кражи оборудования никто не сможет перенастроить и клонировать хранилище git?

Сначала я думал о шифровании домашнего каталога пользователя git, но потом понял, что в этом нет никакого смысла, с каких пор и кем он должен расшифровываться?

Могу ли я поместить репозиторий git в свой собственный домашний каталог / ссылку на него, чтобы он был доступен только после входа на сервер через SSH? Или есть аналогичное решение этой проблемы?

Спасибо за любые советы заранее!

leemes
источник

Ответы:

4

Вы можете использовать зашифрованный домашний каталог. Вам нужно будет войти в систему и вручную смонтировать зашифрованный диск и предоставить ключ дешифрования при перезагрузке сервера. Вы не можете автоматически установить привод по очевидным причинам.

тушеное мясо
источник
Благодарю. То есть вы имеете в виду зашифровать домашний каталог пользователя git? Поскольку я не являюсь пользователем git при входе через SSH, как мне тогда монтировать ecryptfs? Или я должен войти в систему с пользователем Git?
Leemes
(извините, я знаю ecryptfs только в автоматической конфигурации, поскольку я использую Ubuntu на всех своих компьютерах с зашифрованными домашними каталогами с использованием ecryptfs, и поэтому мне никогда не придется беспокоиться о каких-либо ручных командах;))
leemes
1
Вы можете зашифровать только одну папку. вы будете создавать на диске файл, представляющий зашифрованную файловую систему, тогда, если вы правильно настроите / etc / fstab, это может быть что-то вроде запуска «mount / home / git / repository», который запросит у вас пароль. Вот достойное описание того, как этого добиться: h3g3m0n.wordpress.com/2007/04/16/…
тушеное мясо
1

Вы можете использовать фильтр smudge / clean для шифрования содержимого хранилища в удаленной файловой системе: https://gist.github.com/873637

Питер Мунс
источник
Это фактически зашифровывает и локальный репозиторий
Тобиас Кинцлер
Вместо этого попробуйте github.com/AGWA/git-crypt - использует режим CTR и лучше разбирается в crypto; он оставляет локальное хранилище незашифрованным в рабочем дереве через фильтры smudge / clean.
Фил П,
0

Вы можете использовать ГИТ-удаленный_файл gcrypt к git pushи git fetchот клиентских компьютеров к серверу (или где - либо еще). Не только содержимое, но и имена файлов и другие (все?) Метаданные хранилища также шифруются.

Кенни Эвитт
источник