Linux “pass” utilitário para vários usuários

6

Estou tentando configurar um armazenamento interno de senha de negócios para ser usado por vários scripts (e pessoas). Eu olhei para muitas alternativas, mas o mais fácil de modificar para atingir meu objetivo parece ser o utilitário pass .

Eu não sou tão bom com segurança e um verdadeiro noob quando se trata de GPG. Eu consegui fazer as coisas funcionarem para um único usuário:

  • Gerando uma nova chave GPG
  • usando pass init <key_hex>

Também sei que posso usar a opção -p (ou uma variável env) para inicializar o armazenamento de passagem em uma pasta "data" em vez de um diretório inicial (o padrão é ~/.password-store ).

No entanto, estou em uma situação que gostaria que todos os usuários de um host / caixa (Linux) (ou usuários de um grupo específico posterior) pudessem acessar o mesmo repositório de senhas. No meu entender, eu preciso de alguma forma criar uma chave GPG compartilhada para todos esses usuários, para que cada um possa usar o utilitário pass para acessar o mesmo repositório e recuperar senhas. Eu não tenho ideia de como fazer essa configuração e estou meio que preso ...

Qualquer ajuda seria apreciada

    
por urban 19.10.2015 / 09:21

3 respostas

4

Vários gpg-ids podem ser adicionados ao arquivo .gpg-id para criptografar cada senha no diretório. Fazer isso permitiria um armazenamento compartilhado de senhas entre vários membros sem precisar entregar a chave privada a todos.

Também é possível criar sub-diretórios com diferentes conjuntos de gpg-ids se isso fizer sentido.

Veja man pass na seção init para mais detalhes.

Este é um excelente artigo que descreve o processo: link

Espero que isso ajude.

    
por 18.05.2017 / 08:35
3

Para evitar o compartilhamento de uma chave privada, que não é exatamente sua finalidade, você pode dar uma olhada no relativamente novo gopass alternativa a pass , que é compatível com pass e permite que você suporte vários destinatários de forma nativa, ao mesmo tempo em que aplica um fluxo de trabalho git .

É de código aberto, baseado e disponível no Github .

Ele apresenta os seguintes recursos que você talvez não tenha ao usar o passe em um ambiente de vários usuários:

  • git push automático & auto-pull, para nunca perder uma mudança.
  • multi-stores que podem ser montados uns sobre os outros, como sistemas de arquivos em sistemas Linux / UNIX
  • listar, adicionar e remover destinatários da linha de comando
  • armazena as chaves gpg públicas em uma pasta-chave no repositório de senhas
  • totalmente compatível com commits assinados pelo git pgp

Isso é muito interessante quando se trabalha em equipe para compartilhar senhas.

É como pass , o que significa que está usando gpg , está armazenando as senhas no mesmo formato de pass , na primeira linha dos arquivos .gpg , etc.

O fluxo de trabalho normal com o gopass seria o seguinte:

  1. um usuário configura o repositório de senhas (ou aceita pass one) e adiciona cada destinatário a ele.
  2. o usuário compartilha o repositório de senhas em um repositório git comumente acessível (se possível em um servidor git interno, mas como tudo é criptografado, você pode armazená-lo em um servidor externo também, apenas tenha em mente que as estruturas e nomes de suas entradas são expostas.)
  3. todos trabalham com sua própria chave privada para descriptografar os dados, que são então criptografados com as chaves públicas de todos em alterações.

O que é legal é que todo compromisso com sua loja de senhas pode ser assinado por meio de git , é compatível com smartcards PGP, como pass , e se você já usou o Go em sua vida, é fácil ajustá-lo da maneira que desejar. O código vem com extensos testes de unidade e documentação suficiente.

No seu caso específico, deve funcionar razoavelmente bem. Você pode até evitar servidores git completamente remotos e simplesmente armazená-los em uma pasta comum.

    
por 09.05.2017 / 14:43
1

Cada usuário terá acesso para passar e fará um init de passagem para esse diretório, com uma chave GPG presente em seu keychain (um segundo, em vez de seu próprio)

Primeiro, certifique-se de que seu repositório de permissões seja iniciado com o git.

Adicione as senhas necessárias. Confirme e envie para um repositório acessível por todos os usuários.

Em seguida, cada usuário irá clonar este repositório git contendo sua senha criptografada (mas não a chave GPG)

Você pode espalhar sua chave GPG com:

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

E, em seguida, importando para cada usuário

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

Finalmente, cada usuário iniciará seu próprio repo pass com o ID-chave do GPG compartilhado

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

Você pode obter o ID da chave com

gpg --list-keys 

NB: Você tem que pensar sobre a logística de compartilhamento de chaves privadas.

Estou citando [email protected] nesta boa folha de dicas sobre o GPG

Use Case *.2 : Mentioned above were the commands for exporting and importing secret keys, and I want to explain one reason of why maybe you'd want to do this. Basically, if you belonged to a group, and wanted to create a single key-pair for that group, one person would create the key-pair, then export the public and private keys, give them to the other members of the group, and they would all import that key-pair. Then a member of the group or someone outside could use the group public key, encrypt the message and/or data, and send it to members of the group, and all of them would be able to access the message and/or data. Basically you could create a simplified system where only one public key was needed to send encrypted stuffs to muliple recipients.

    
por 29.04.2016 / 04:51