Her gpg-agent
iki PGP e SSH kimliğini yönetmek için kullanıyorum . Temsilci böyle bir komut dosyasıyla başlatılır
gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"
export GPG_TTY="$(tty)"
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
source "$gpg_agent_env" 2> /dev/null
fi
bu etkileşimli bir kabuk çalıştırdığımda elde edilir. Bu kurulumda her şey iyi çalışıyor ancak bir sorun var. Diyelim ki:
- bir terminal açın (aracıyı arka planda başlatın) ve çalışmaya başlayın
- bir süre sonra ikinci bir terminal açın
- ikinci terminalde parola girilmesini gerektiren bir işlem yapın
Bu noktada bir parola sormaya gpg-agent
başlayacaktır, pinentry-curses
ancak bunu ilk terminalde gerçekleştirecektir, bu da çıktıyı çalışmakta olan her şeyle (genellikle bir metin düzenleyici) karıştırmaya neden olur ve programı sürdürmek veya pinentry'yi durdurmak mümkün değildir (% 100 cpu kullanmaya başlar) ve öldürmek zorundayım).
Burada yanlış bir şey yapmalıyım. Bunu yaşayan var mı?
Güncelleme:
Ben bir istem bir SSH anahtarı gibi görünüyor kilidini için bu yalnızca olur anladım bu doğru (yani akım) uçbirimlerden ise PGP anahtarları için istemleri her zaman açık.
export GPG_TTY="$(tty)"
düzeltti