Pam-gnupg não está funcionando

Utilizo o pass como gerenciador de senha, criptogrado com gnupg. Para não ter que digitar minha senha toda vez que for pegar um login no pass, estou tentando utiliza o pam-gnupg, que desbloqueia o gnupg junto do login.

A senha do login e do gnupg são as mesmas, também inseri a linha allow-preset-passphrase em ~/.gnupg/gpg-agent.conf

Obs: não utilizo nenhum login manager, apenas logo e dou startx para iniciar o sistema

Qual arquivo do /etc/pam.d você modificou?

Como você usa só o TTY, talvez baste modificar /etc/pam.d/login, mas talvez seja preferível colocar em /etc/pam.d/system-local-login pra caso você adote um DM no futuro.

Vi que o gpg-agent não inicia automaticamente no runit (uso o Void Linux). Então setei as seguintes configurações:

~/.gnupg/gpg-agent.conf

allow-preset-passphrase
default-cache-ttl 31536000
max-cache-ttl 31536000

~/.gnupg/gpg.conf
use-agent

~/.xinitrc

if [ -x /usr/bin/gpg-agent ]; then
 eval "$(/usr/bin/gpg-agent --daemon)"
fi

~/.zshrc

GPG_TTY=$(tty)
export GPG_TTY

/etc/pam.d/login
image

Não consegui copiar esse, por algum motivo.

Segundo a documentação, o pam_gnupg se encarrega disso, não é preciso mexer nos rc da vida. Na verdade, fica é mais trabalho de fazer funcionar se fizer isso.

Como o login inicia uma sessão, é preciso colocar as linhas tanto de auth (com store_only no final) quanto de session.

Removi o que coloquei nos rc e coloquei store-only na linha de auth e coloquei a linha session.

Ficando assim:

auth            required        pam_securetty.so
auth            requisite       pam_nologin.so
auth            include         system-local-login
account         include         system-local-login
session         include         system-local-login
auth            optional        pam_gnupg.so store-only
session         optional        pam_gnupg.so