Saya suka menandatangani komit git saya dengan kunci PGP saya, jadi saya cukup khawatir ketika saya pergi ke git commit -S
tetapi alih-alih meminta frasa sandi kunci PGP saya, git baru mulai menggantung. Saya belum melakukan perubahan pada pengaturan GPG saya dalam beberapa bulan dan telah membuat banyak komitmen sejak saat itu tanpa masalah. Selain itu, ketika saya mencoba untuk melihat kunci pribadi saya dengan gpg -K
, gpg hang. Namun, ketika saya menjalankan gpg -k
untuk melihat kunci publik saya, itu mengembalikan daftar seperti biasa. Semoga seseorang akan memiliki ide tentang apa yang menyebabkan masalah ini dan bagaimana cara memperbaikinya.
16
gpg-agent
atau setup serupa di .bashrc (dll) dari sistem jarak jauh, dan dikonfigurasi untuk meminta pada tampilan X jarak jauh atau serupa? Saya pernah memiliki masalah yang sama di masa lalu (misalnya ssh-ing dari terminal pada kotak mythtv saya ke mesin desktop saya untuk menjalankan sesuatu yang membutuhkan gpg. Juga memiliki masalah serupa denganssh-agent
), dan saya brute-force "memperbaiki" denganexport GPG_TTY=$(tty)
di .bashrc, untuk memastikan prompt selalu di tty saat ini. saya tidak tahan GUI passwd meminta pula.gpg-agent
halaman manual bahwa pengaturan GPG_TTY seperti di atas bukanlah sesuatu yang saya peretas untuk bekerja, itu diperlukan. Halaman manual mengatakan Anda harus selalu meletakkannya di .bashrc Anda seperti yang saya lakukan, dan juga mengatakanIt is important that this environment variable always reflects the output of the tty command.
- itu pasti dari mana saya mendapatkannya. Satu hal lagi yang perlu Anda perhatikan adalah program pinentry yang digunakan oleh gpg-agent. Saya memiliki set tambang (di~/.gnupg/gpg-agent.conf
) ke/usr/bin/pinentry-curses
Jawaban:
Saya menemukan masalah persis ini (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)
Perintah yang akan digantung:
Solusi saya sama dengan yang disebutkan oleh John di atas (mis. Kill gpg-agent) karena kebanyakan metode lain tentang bagaimana-bisa-i-restart-gpg-agent juga akan hang.
Kemudian untuk menandatangani komit git saya mengatur tty env seperti yang disebutkan oleh cas di atas dan juga di gpg-gagal-untuk-menandatangani-komit-objek .
sumber
gpg-agent
tampaknya menjadi satu-satunya cara untuk membuatnya bekerja kembali.