Saya gunakan gpg-agent
untuk mengelola kedua identitas PGP e SSH. Agen dimulai dengan skrip seperti ini
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
yang bersumber setiap kali saya menjalankan shell interaktif. Semuanya berfungsi dengan baik dengan pengaturan ini tetapi ada masalah. Katakanlah saya:
- buka terminal (meluncurkan agen di latar belakang) dan mulai bekerja
- setelah beberapa saat buka terminal kedua
- lakukan tindakan yang mengharuskan Anda memasukkan frasa sandi di terminal kedua
Pada titik ini gpg-agent
akan mulai pinentry-curses
mendorong frasa sandi tetapi akan melakukan ini di terminal pertama yang menghasilkan output yang bercampur dengan apa pun yang sedang berjalan (biasanya editor teks) tanpa ada cara untuk melanjutkan program atau menghentikan pinentry (mulai menggunakan cpu 100% dan saya harus membunuhnya).
Saya pasti melakukan sesuatu yang salah di sini. Adakah yang pernah mengalami ini?
Memperbarui:
Saya tahu ini terjadi hanya untuk prompt untuk membuka kunci SSH, yang terlihat seperti ini , sementara meminta kunci PGP selalu terbuka pada tty yang benar (yaitu saat ini).
export GPG_TTY="$(tty)"
yang diperbaiki untuk saya