gpg dengan gpg-agent tidak pernah meminta frasa sandi

17

Tanpa menjalankan agen gpg, saya dapat memasukkan frasa sandi saya untuk menandatangani hal-hal:

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <[email protected]>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: gpg-agent is not available in this session
Enter passphrase:

Bekerja dengan baik. Tetapi saya tidak ingin mengetikkan kata sandi saya sepanjang waktu, jadi saya menjalankan gpg-agent:

$  eval $(gpg-agent --daemon)

Sekarang saya berharap akan diminta untuk passphrase saya setidaknya sekali, tapi saya tidak pernah, dan semua operasi menggunakan gpg gagal.

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <[email protected]>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: cancelled by user
gpg: no default secret key: bad passphrase
gpg: signing failed: bad passphrase

Bagaimana cara mendapatkan frasa sandi saya disimpan di agen? Setelah saya memilikinya di sana, bagaimana saya menyimpannya di seluruh sesi login? (Idealnya saya tidak pernah mau diminta lagi.) Ini ada di Ubuntu 12.04.4 dengan paket gpg apt-get standar, kalau-kalau itu penting.

jsd
sumber

Jawaban:

18

Ini terjadi ketika gpg-agenttidak tahu TTY mana yang diminta, yang terjadi di sini karena Anda mengarahkan stdin.

Anda dapat menempatkan export GPG_TTY=$(tty)dalam Anda ~/.bashrcuntuk setup TTY untuk setiap shell login.

The docs padagpg-agent memiliki rincian lebih lanjut.

leedm777
sumber
7

Agak terlambat, tetapi saat ini saya menghadapi masalah ini ketika saya melakukan login jarak jauh ke PC saya (Linux-Centos) dan mencoba mendekripsi file PGP. Saya mencoba saran dave, tanpa hasil, googling saya menemukan ini

gpg: dibatalkan oleh pengguna

Bagian ini menyelesaikan masalah saya:

Akhirnya setelah membiarkan yang lain untuk r + w pada tty tampaknya untuk menyelesaikan masalah ini

[root @ host ~] # chmod o + rw $ (tty)

Semoga ini bisa membantu orang lain.

BR.

Vielinko
sumber
Yang ini akan bekerja .. Lakukan saja bagian chmod tty sebelum melakukan su kepada pengguna
user169015
Ini tidak aman - Anda harus memastikan bahwa tty dimiliki oleh pengguna yang benar, atau mungkin menggunakan grup dengan pengguna yang diperlukan dalam dan izin grup :)
Legooolas