7

Я пытаюсь настроить внутреннее бизнес-хранилище паролей для использования различными сценариями (и людьми). Я рассмотрел много альтернатив, но проще всего изменить для достижения моей цели, кажется, утилита pass .

Я не так хорош с безопасностью и настоящим нубом, когда дело доходит до GPG. Мне удалось заставить вещи работать на одного пользователя с помощью:

  • Генерация нового ключа GPG
  • используя pass init <key_hex>

Я также знаю, что могу использовать опцию -p (или переменную env) для инициализации хранилища пропусков в папке "data", а не в домашнем каталоге (по умолчанию ~/.password-store).

Однако я нахожусь в ситуации, когда мне хотелось бы, чтобы все пользователи хоста / бокса (Linux) (или пользователи определенной группы позже) имели доступ к одному и тому же хранилищу паролей. Насколько я понимаю, мне нужно как-то создать общий ключ GPG для всех этих пользователей, чтобы каждый мог использовать утилиту pass для доступа к одному и тому же хранилищу и получения паролей. Я понятия не имею, как сделать такую настройку, и я вроде застрял ...

Любая помощь будет оценена

3 ответа3

6

Несколько файлов gpg-id могут быть добавлены в файл .gpg-id для шифрования каждого пароля в каталоге. Это позволило бы хранить общие пароли между различными участниками без необходимости передавать закрытый ключ всем.

Также возможно создавать подкаталоги с разными наборами gpg-идентификаторов, если это имеет смысл.

Смотрите man pass под разделом init для более подробной информации.

Вот отличная статья, в которой описан процесс: https://medium.com/@davidpiegza/using-pass-in-a-team-1aa7adf36592

Надеюсь это поможет.

4

Чтобы избежать совместного использования закрытого ключа, который на самом деле не является их целью, вы можете взглянуть на относительно новую альтернативу gopass для pass , которая совместима с pass и позволяет вам поддерживать несколько получателей изначально, при этом применяя git рабочий процесс.

Это открытый исходный код, основанный на Go, и доступный на Github.

В нем реализованы следующие функции, которые могут вам в данный момент отсутствовать при использовании pass в среде нескольких пользователей:

  • git auto-push & auto-pull, чтобы никогда не пропустить изменения.
  • мульти-хранилища, которые можно монтировать друг на друга, как файловые системы в системах Linux/UNIX
  • список, добавление и удаление получателей из командной строки
  • хранить открытые ключи gpg в папке ключей в хранилище паролей
  • полностью совместим с коммитами git pgp

Это действительно интересно при работе в команде для обмена паролями.

Это как pass , что означает, что он использует gpg , он хранит пароли в том же формате, что и pass , в первой строке .gpg файлов и т.д.

Обычный рабочий процесс с Gopass будет следующим:

  1. пользователь устанавливает хранилище паролей (или принимает pass ) и добавляет в него всех получателей.
  2. пользователь делит хранилище паролей в общедоступном git-репозитории (если возможно, на внутреннем git-сервере, но, поскольку все зашифровано, вы можете хранить его и на внешнем сервере, просто помните, что структуры и имена ваших записей подвергаются.)
  3. каждый работает со своим личным ключом, чтобы расшифровать данные, которые затем перекодируются с открытыми ключами каждого на изменения.

Приятно, что каждый коммит в вашем хранилище паролей может быть подписан через git, он совместим с смарт-картами PGP, такими как pass , и, если вы уже использовали Go в своей жизни, легко настроить его так, как вы хотите. Код поставляется с обширными юнит-тестами и достаточно хорошей документацией.

В вашем конкретном случае это должно работать довольно хорошо. Вы можете даже избежать полностью удаленных серверов git и просто хранить их в общей папке.

1

Каждый пользователь будет иметь доступ к pass и будет выполнять init init для этого каталога с ключом GPG, присутствующим в его цепочке для ключей (скорее вторым, чем их собственным).

Во-первых, убедитесь, что ваш pass store инициализирован с помощью git.

Добавьте нужные вам пароли. Зафиксируйте репозиторий, доступный для всех пользователей.

Затем каждый пользователь будет клонировать этот репозиторий git, содержащий ваш зашифрованный пароль (но не ключ GPG).

Вы можете распространить свой ключ GPG с помощью:

gpg --export-secret-key -a "User Name" > private.key

А затем импортировать его для каждого пользователя

gpg --allow-secret-key-import --import private.key

Наконец, каждый пользователь будет инициализировать свой собственный репозиторий с общим идентификатором ключа GPG.

init [ --path=sub-folder, -p sub-folder ] gpg-id...

Вы можете получить идентификатор ключа с

gpg --list-keys 

NB: Вы должны подумать о том, как делиться секретными ключами.

Я цитирую scout3801@gmail.com в этой хорошей шпаргалке о GPG

Вариант использования * .2: Выше были упомянуты команды для экспорта и импорта секретных ключей, и я хочу объяснить одну причину, почему, возможно, вы захотите сделать это. По сути, если вы принадлежите к группе и хотите создать одну пару ключей для этой группы, один человек создаст пару ключей, затем экспортирует открытый и закрытый ключи, передаст их другим членам группы и все они импортировали бы эту пару ключей. Затем член группы или кто-то извне может использовать открытый ключ группы, зашифровать сообщение и / или данные и отправить его членам группы, и все они смогут получить доступ к сообщению и / или данным. По сути, вы могли создать упрощенную систему, в которой для отправки зашифрованных материалов нескольким получателям требовался только один открытый ключ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .