GPG si blocca quando si accede alle chiavi private


16

Mi piace firmare il mio commit git con la mia chiave PGP, quindi ero piuttosto allarmato quando sono andato a, git commit -Sma invece di richiedere la mia passphrase chiave PGP, git ha appena iniziato a bloccarsi. Non ho apportato modifiche alla mia configurazione GPG da diversi mesi e da allora ho fatto molti commit senza alcun problema. Inoltre, quando provo a visualizzare le mie chiavi private con gpg -K, gpg si blocca. Tuttavia, quando corro gpg -kper visualizzare le mie chiavi pubbliche, restituisce l'elenco come al solito . Spero che qualcuno abbia qualche idea di cosa sta causando questo problema e come risolverlo.


lo stai facendo su ssh? in tal caso, hai gpg-agentun'impostazione simile o simile nel .bashrc (ecc.) del sistema remoto e configurato per richiedere sul display X del telecomando o simile? ho avuto problemi simili in passato (ad esempio ssh-zione da un terminale sul mio MythTV casella per la mia macchina desktop per eseguire qualcosa che richiede gpg. anche avuto problemi simili con ssh-agent), e ho brute-force "fisso" con export GPG_TTY=$(tty)la .bashrc, per assicurarsi che il prompt sia sempre sul tty corrente. non riesco comunque a sopportare le istruzioni della GUI passwd.
Cas

1
No, non lo sto facendo su SSH. La cosa strana è che ho scoperto che se uccido gpg-agent, gpg funziona di nuovo. Sto cercando di capire perché e fare una soluzione a lungo termine.
John Leuenhagen,

Ho appena notato nella gpg-agentpagina man che impostare GPG_TTY come sopra non è qualcosa che ho hackerato per funzionare, è necessario. La pagina man dice che dovresti sempre impostarlo nel tuo .bashrc come ho fatto io, e dice anche It is important that this environment variable always reflects the output of the tty command.- deve essere stato da dove l'ho preso. Un'altra cosa di cui devi fare attenzione è il programma pinentry usato da gpg-agent. Ho impostato il mio (in ~/.gnupg/gpg-agent.conf) su/usr/bin/pinentry-curses
cas

Risposte:


21

Mi sono imbattuto in questo preciso problema (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)

Comandi che si bloccherebbero:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent

La mia soluzione era la stessa menzionata da John sopra (es. Uccidere gpg-agent) poiché anche la maggior parte degli altri metodi su how-can-i-restart-gpg-agent si bloccherebbe.

# Solution    
pkill -9 gpg-agent

Quindi per la firma di git commit ho impostato tty env come indicato da cas sopra e anche su gpg-failed-to-sign-commit-object .

export GPG_TTY=$(tty)

Quindi devi ri-uccidere gpg ogni volta che riavvii? Questo è quello che devo fare da molto tempo ormai. Spero che troveremo un modo per risolverlo per sempre.
John Leuenhagen,

Ho appena iniziato ad avere il problema da solo. Uccidere il gpg-agentsembra essere l'unico modo per farlo funzionare di nuovo.
Alexis Tyler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.