Como posso fazer o cache do desbloqueio PGP para o passo unix quando estou no terminal virtual?

1

Quando eu estiver executando na GUI, se eu executar o comando pass para ler uma senha como pass -c Email/FooBar , um aviso de senha será exibido para a minha frase secreta. Se eu digitar minha senha, minha senha será copiada para a área de transferência.

Se posteriormente eu executar o comando pass para ler uma senha diferente sem efetuar logout e login novamente, não preciso digitar minha senha novamente.

No entanto, se eu tentar a mesma coisa no terminal virtual Control-Alt-F1 , preciso digitar minha senha todas as vezes.

Como posso fazer isso para que eu possa digitar a senha exatamente uma vez por sessão de login no terminal virtual?

    
por merlin2011 29.05.2015 / 01:04

1 resposta

3

A diferença de experiência entre usar pass em um console (o que você chama de terminal virtual) e dentro de um terminal (GUI) não tem nada a ver com pass , mas com o gerenciamento de chave secreta feito para gpg (como usado nos scripts pass ) pelo gpg-agent .

Este gpg-agent é, nas distribuições modernas, iniciado automaticamente com o X. Você pode ver isso fazendo env | fgrep GPG_AGENT de um terminal e um dos consoles. No meu Linux Mint 17, isso é feito por /etc/X11/Xsession.d/90gpg-agent .

Como a página gpg-agent de man informa:

If you don't use an X server, you can also put this into your regular startup file ~/.profile or .bash_profile. It is best not to run multi‐ ple instance of the gpg-agent, so you should make sure that only one is running: gpg-agent uses an environment variable to inform clients about the communication parameters. You can write the content of this envi‐ ronment variable to a file so that you can test for a running agent. Here is an example using Bourne shell syntax:

     gpg-agent --daemon --enable-ssh-support \
               --write-env-file "${HOME}/.gpg-agent-info"

O 90gpg-agent mencionado acima é realmente inteligente e testa se o gpg-agent já está em execução, mas o padrão é usar ~/.gnupg/gpg-agent-info-$(hostname) .

Se a sua distribuição tiver uma configuração semelhante, você poderá adicionar as linhas acima ao seu ~/.profile (mas certifique-se de usar a correspondência PIDFILE com o seu X iniciado gpg-agent ). Você também deve poder usar o mesmo gpg-agent de vários consoles reavaliando o arquivo .gpg-agent-info .

Ao tentar configurá-lo, certifique-se de executar pstree | grep -F pgp-agent para garantir que não haja mais agentes em execução do que o necessário, caso contrário, o " pass " solicitará novas senhas e / ou entre diferentes consoles

    
por 29.05.2015 / 11:15