gpg-agentを手動で起動しないと、署名/暗号化できません。

gpg-agentを手動で起動しないと、署名/暗号化できません。

私は最近開発作業のために仮想マシンにUbuntuを設定しましたが、gitが私のコミットに署名できないことがわかりました。さらなる調査の結果、設定が正確であったInappropriate ioctl for deviceにもかかわらず、gpg-agentがpinentry-cursesを介して自分のパスワードを要求できず、エラーが発生したことがわかりました。GPG_TTY

$ echo 'this is a test' | gpg --status-fd=2 -bsau <<my-key-short>>
[GNUPG:] KEY_CONSIDERED <<my-key-long>> 2
[GNUPG:] BEGIN_SIGNING H8
[GNUPG:] PINENTRY_LAUNCHED 1207
gpg: signing failed: Inappropriate ioctl for device
[GNUPG:] FAILURE sign 83918950
gpg: signing failed: Inappropriate ioctl for device

$ echo $GPG_TTY
/dev/pts/0

ただし、gpg-agentを終了して手動で起動すると(エージェントを自動的に起動するためにpsによって報告されたものとまったく同じパラメータを使用する)、問題なくパスワードと署名を求めるメッセージが表示されることがあります。

$ ps x
   PID TTY      STAT   TIME COMMAND
   922 ?        S      0:00 sshd: five35@pts/0
   923 pts/0    Ss     0:00 -bash
  1205 ?        Ss     0:00 gpg-agent --homedir /home/five35/.gnupg --use-standard-socket --daemon
  1224 pts/0    R+     0:00 ps x

$ gpgconf --kill gpg-agent

$ gpg-agent --homedir /home/five35/.gnupg --use-standard-socket --daemon
gpg-agent[1276]: WARNING: "--use-standard-socket" is an obsolete option - it has no effect
gpg-agent[1277]: gpg-agent (GnuPG) 2.1.15 started

$ echo 'this is a test' | gpg --status-fd=2 -bsau <<my-key-short>>
[GNUPG:] KEY_CONSIDERED <<my-key-long>> 2
[GNUPG:] BEGIN_SIGNING H8
[GNUPG:] PINENTRY_LAUNCHED 1295
[GNUPG:] SIG_CREATED D 1 8 00 1503763837 <<my-key-long>>
-----BEGIN PGP SIGNATURE-----

iQIcBAABCAAGBQJZoZ19AAoJEKT/kfDdu6RyXJYP/RBNUVXFkWahcYcaGs4LkC5Y
G9bcMnNgGdVZt5XXq28jjc3KRNkwC1taHK+TcNutGoK7vbnnB8dmZ2/M5mHkvzCt
Cdm7YBp0QevUIRNoJis402/nmBXG3wEwne97B0kC32aY6i2pPMl+x0ZVbrZ15mXk
mhvk+Yd126x/HQ2B5buFN1rnh1oXdm6vo6EZXjTI6uCYlEeIMJUqdWhys7lf2TNr
3wCyrVvPx44RY92vtKSdJW0eZNhzMqdopjyaO/TPMPZxQiH7t0/rJk98eLyEAkBT
kcW6iDTwZWWgA3I4X1Q0JIKnc33jRXnOuLWcPEOSYKczssQx6xXNS43vskaaz2Rz
/U6NsaF0BuTQY9LcT1nKRwyoB1SXPgBss0j/E0MvZEHYTQfRPuAffJgZvQyIEjGf
6DPicQ45hltPaiFekXtTBd47ilyvyWCYO6qnCjDpTFxLXw3y4PseA79GrkQ2YRiS
Tzb6faW+/pgFlcXpMpCZATGde0o/KQZdTSZ5TpvlAf4N8uBdppObxuhDnzS2BeR6
/pqmP+/cw+txb7peNrvbIjwQcNsAkp5M8lG0hPJEecHXkivEck7zsgC6ua+Fy/Ic
3LicU01YvzIGq2r703pZpFWcoayPEdn5BCtyRElwON/Vk98930QCOu65WqF4WOmJ
s1k429ihGjgTRqzOT6by
=uv8j
-----END PGP SIGNATURE-----

また、複数の端末(SSHセッション)を開くと、gpg-agentを手動で起動した端末で常にパスワードの入力を求められます。

この問題をどのように解決できますか?私はexport GPG_TTY=$(tty).bashrc(結果は上記で見ることができます)に追加し、runを実行しecho "UPDATESTARTUPTTY" | gpg-connect-agent、myをTERMjustに変更しxterm、unsetに変更しましたDISPLAY。残念ながら、これらのどれも効果がないようです。

ホストシステム:

  • Windows 10ホームエディション64ビット1703 15063.540
  • パテ0.70 64ビット

クライアントシステム:

  • Ubuntu17.04
  • GPG 2.1.15
  • GPG-エージェント 2.1.15
  • pinentry-呪い1.0.0

ベストアンサー1

おすすめ記事