Pass é um simples gerenciador de senhas de linha de comando. Com o Pass, cada senha fica salva dentro de um arquivo criptografado com o GPG, onde o nome do arquivo é o site ou recurso que você gostaria de salvar a senha. Esses arquivos criptografados ficam salvos em ~/.password-store. O Pass torna o gerenciamento desses arquivos extremamente fácil fornecendo uma série de comandos para senhas: adicione, remova, edite, sincronizar, gerar e manipule. Neste artigo, vamos aprender como usá-lo para gerenciarmos nossas senhas.
Instalação
A instalação do Pass é muito simples, porque o mesmo está disponível na maioria das distribuições GNU.
Debian e derivados
sudo apt install pass
Fedora
sudo dnf install pass
Arch
pacman -S pass
Inicializando o pass
Após a instalação do Pass, temos que criar o nosso par de chaves usando o GPG., Então, para isso, digite esse comando:
gpg --full-gen-key
Com nossas chaves criadas, vamos inicializar o Pass. Para isso, você vai precisar do ID da sua chave GPG ou o e-mail que você informou quando estava criando a chave. Eu vou usar o e-mail:
pass init contato@allythy.com
Com isso, o Pass vai criar a um diretório para armazenar a nossas senhas.
Inserindo senhas
Sintaxe: pass insert <pasta>/<serviço>
Para adicionar senha ao pass é bem simples. Primeiro, vou criar uma pasta chamada e-mail e nela vou guardar as senhas dos meus e-mails. Então, vou começar com o e-mail do SempreUpdate.
pass insert email/sempreupdate mkdir: foi criado o diretório '/home/allythy/.password-store/email' Enter password for email/sempreupdate: Retype password for email/sempreupdate:
Agora eu quero adicionar a senha do protonmail na mesma pasta email. Vai ser do mesmo jeito, mas agora ele não vai criar a pasta email, porque já foi criada antes.
pass insert email/protonmail Enter password for email/protonmail: Retype password for email/protonmail:
Para ver a estrutura de como as nossas senhas estão sendo salvas, digite:
pass Password Store |---- email |---protonmail |---sempreupdate
Vamos criar outra pasta para armazenar as senhas das redes sociais:
pass insert social/diaspora mkdir: foi criado o diretório '/home/allythy/.password-store/social' Enter password for social/diaspora: Retype password for social/diaspora:
Se a gente não informar a pasta que vai ser criada ou usada para salvar a senha, o Pass vai salvar normalmente nossa senha, mas vai ficar desorganizado porque vai ficar “solto” no repositório ~/.password-store. Então, é recomendado informar uma pasta.
Password Store |---- email | |---protonmail | |---sempreupdate |----social |---diaspora
Você também pode salvar outras informações junto à senha, como usuário, site etc. Para isso, você tem que passar a opção –multiline ou -m. Contudo, a primeira linha tem que ser a senha. Já as outras podem conter qualquer informação. Para sair e salva as informações pressione Ctrl+d.
pass insert -m social/noosfero Enter contents of social/noosfero and press Ctrl+D when finished: 2wq!2oOLIF9*&<de2cx site: noosfero.org user: livre
Gerando senhas automaticamente
Você pode mandar o Pass gerar uma senha para um serviço novo ou já existente. Vamos gerar uma nova senha para o Protonmail com 25 caracteres:
pass generate email/protonmail 25 An entry already exists for social/sim. Overwrite it? [y/N] y The generated password for email/protonmail is: &aPO<*$~."HS)?z'9VIDh(NL0
Caso queira gerar senha alfanumérico coloque a opção -n depois do comando generate.
Exibindo as senhas
Como a gente viu, digitando pass mostra a estrutura de como as senhas estão organizadas. Digamos que eu quero pegar a senha do sempreupdate. Para isso precisamos passar a pasta e o arquivo que vamos pegar a senha:
pass email/sempreupdate !J|>%,a9UP3Et,X`d:L<;xr3)
Ele vai pedir uma senha. Essa é a senha que colocamos quando criamos a chaves GPG. O problema é que ele vai mostrar a senha do terminal. Imagine se tiver alguém perto de você nesse momento. Isso não seria nada bom. Então, vamos usar a opção -c. Assim, essa opção vai copiar a senha para o clipboard, deixar ela lá por 45s e depois apagar.
pass -c email/sempreupdate Copied email/sempreupdate to clipboard. Will clear in 45 seconds.
Para ver as informações de noosfero, que foi a senha que inserimos múltiplas linhas, usamos o comando show:
pass show social/noosfero 2wq!2oOLIF9*&<de2cx site: noosfero.org user: livre
Caso você queira que a senha não seja mostrada no terminal tem que usar a opção -c depois do comando show. Como você verá, apenas a senha vai ser copiada. Então, caso queira copiar a linha 2,3 ou qualquer outra, você precisa passar o número da linha depois da opção -c, assim:
pass show -c2 social/noosfero Copied social/noosfero to clipboard. Will clear in 45 seconds.
Apagando senhas
Enfim, para remover uma senha do Pass precisamos apenas usar o comando rm e informar qual é senha, desse forma:
pass rm email/sempreupdate Are you sure you would like to delete email/sempreupdate? [y/N] y removido '/home/allythy/.password-store/email/sempreupdate.gpg'
Caso você queira remover uma pasta completa com todas senhas use a opção –recursive ou -r .
pass rm -r email/ Are you sure you would like to delete email/? [y/N] y removido '/home/allythy/.password-store/email/job.gpg' removido '/home/allythy/.password-store/email/protonmail.gpg' foi removido o diretório: '/home/allythy/.password-store/email/'
Se não quiser que o pass pergunte se tem certeza na hora de apagar a senha, use a opção –force ou -f.
Editando senha
Finalmente, para editar uma senha do Pass, temos que usar o comando edit:
pass edit social/diaspora
Mais informações
Para mais informações você pode acessar a página do projeto ou olhar a documentação no terminal mesmo:
man pass
Entretanto, caso você não goste de usar a linha de comando pode instalar o qtpass. Ele é uma interface gráfica para o pass. Da mesma forma do Pass, o qtpass está na maioria do repositório das distribuições GNU.