GnuPGの奇妙なバグ:端末が小さすぎると「鍵なし」と主張する

GnuPGの奇妙なバグ:端末が小さすぎると「鍵なし」と主張する

私のコンテンツは次のとおりです.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-curses

passたとえば、非常に小さな端末ウィンドウでリポジトリからパスワードを取得しようとすると、pass -c path/to/passwordコマンドエラーは次のようになります。

gpg: decryption failed: No secret key

だからこれはGnuPGのバグです。 ncursesはpinentryダイアログを描画するのに十分なスペースがないからだと思います。

誰かがこれを再現できますか?それでは、このバグをどこに報告できますか?

ここに画像の説明を入力してください。

ベストアンサー1

(疑わしい)バグを報告するたびに、観察された動作と予想される内容を説明する必要があります。したがって、この場合、GnuPGを使用してバグレポートを開くときに何が起こると思うかを明記する必要があります。ここに追加する場合は、コメントに追加するのではなく、質問を編集する必要があります。下部の提案も参照してください。

はい、ウィンドウが小さすぎるため、これが発生します。また、GnuPGから派生していません。 GnuPGはpinentry-program設定で指定した内容だけを呼び出します。

何が起こっているのかについては、手動で呼び出すことができます。

$ stty cols 20 rows 10
$ pinentry-curses 
OK Pleased to meet you
GETPIN
S ERROR curses.dialog_create 83886381 
ERR 83886381 Screen or window too small <Pinentry>

ここでは、まずttyサイズを小さくしてからを呼び出しましたpinentry-curses。コマンドを待ってからGETPINPINを取得するためにコマンドを入力しました。画面が小さすぎてダイアログを表示できないと文句を言います。 GnuPGはPINを取得できないと報告します。

あなたが書いたチケットを見ましたが、あなたの提案は難しいか不可能なものの間にあります。gpg端末のサイズに気をつけてはいけないので、端末が小さすぎると主張してはならないからです。

代わりに、次のテキストを使用することをお勧めします(ここではアカウントを作成したくありません)。

gpgpinentry-program復号化キーが必要な場合に呼び出されます。pgp一般的なメッセージを表示するのではなく、次のような
decryption failed: No secret key
転送されたメッセージを表示することをお勧めします。pinentry-program
Can't decrypt key, pinentry-program failed with (text from ERR response)

また、gpgチームがメンテナンスしている場合は、小さなウィンドウを検出し、設定されていないpinentry-curses場合と同じように動作してこのエラーを回避できます。$TERM

おすすめ記事