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