秘密キーにアクセスするとGPGがハングする


15

PGPキーを使用してgitコミットに署名するのが好きなので、行ったときにかなり心配git commit -Sでしたが、PGPキーのパスフレーズを求めるプロンプトではなく、gitがハングし始めました。私は数か月間GPGの設定を変更しておらず、それ以来多くのコミットを問題なく行いました。さらに、で秘密鍵を表示しようとするとgpg -K、gpgがハングします。ただし、gpg -k公開キーを表示するために実行すると、通常のようにリストが返されます。うまくいけば、誰かがこの問題を引き起こしているものとそれを修正する方法についての考えを持っているでしょう。


SSHでこれを行っていますか?その場合gpg-agent、リモートシステムの.bashrc(など)に同様の設定があり、リモートのXディスプレイなどでプロンプトを表示するように設定されていますか?私は(もと同様の問題があった。例えばGPGを必要とする何かを実行するために、私のデスクトップマシンに私のMythTVのボックス上の端末からのssh-INGの過去に同様の問題を持っていたssh-agent)、およびIブルートフォースでそれを「固定」export GPG_TTY=$(tty)で.bashrc。プロンプトが常に現在のttyにあることを確認します。とにかくGUIのpasswdプロンプトを我慢できません。
cas

1
いいえ、SSH経由ではありません。奇妙なのは、gpg-agentを強制終了すると、gpgが再び機能することを発見したことです。理由を突き止め、長期的な解決策を講じようとしています。
ジョンロイエンハーゲン

gpg-agentmanページで、GPG_TTYを上記のように設定することは、私がハッキングして動作するものではなく、必須であることに気づきました。manページには、常に.bashrcに設定するIt is important that this environment variable always reflects the output of the tty command.必要があると記載されています。注意すべきもう1つのことは、gpg-agentが使用するpinentryプログラムです。私は私のセット(で持っている~/.gnupg/gpg-agent.confのを)/usr/bin/pinentry-curses
CAS

回答:


20

私はこの正確な問題に遭遇しました(OSX Sierra 10.12.6、gpg / GnuPG 2.2.5)

ハングするコマンド:

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

how-can-i-restart-gpg-agentの他のほとんどのメソッドもハングアップするため、私の解決策は上記のJohnが述べたもの(つまり、gpg-agentを強制終了)と同じでした。

# Solution    
pkill -9 gpg-agent

次に、gitコミットに署名するために、上記のcasgpg-failed-to-sign-commit-objectで言及されているようにtty envを設定します

export GPG_TTY=$(tty)

それで、リブートするたびにgpgを再キルする必要がありますか?それは私が長い間しなければならなかったことです。私はそれを永久に修正する方法を見つけられることを願っています。
John Leuenhagen

自分で問題が発生し始めました。を殺すgpg-agentことはそれを再び機能させる唯一の方法のようです。
アレクシスタイラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.