gpg z gpg-agent nigdy nie prosi o hasło

17

Bez uruchomionego agenta gpg, mogę wpisać moje hasło, aby podpisać różne rzeczy:

$ 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:

Działa w porządku. Ale nie chcę cały czas wpisywać hasła, więc uruchamiam gpg-agent:

$  eval $(gpg-agent --daemon)

Teraz spodziewałbym się, że przynajmniej raz otrzyma monit o moje hasło, ale nigdy nie jestem, a wszystkie operacje przy użyciu gpg kończą się niepowodzeniem.

$ 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

Jak mogę zapisać moje hasło w agencie? Kiedy już go tam mam, jak mogę go przechowywać podczas sesji logowania? (Idealnie, nigdy więcej nie chcę otrzymywać monitu). Dotyczy to Ubuntu 12.04.4 ze standardowymi pakietami apt-get gpg, na wypadek, gdyby miało to znaczenie.

jsd
źródło

Odpowiedzi:

18

Dzieje się tak, gdy gpg-agentnie wiadomo, który TTY zapytać, co dzieje się tutaj, ponieważ przekierowujesz standardowe wejście.

Możesz ustawić export GPG_TTY=$(tty)swój ~/.bashrcTTY dla każdej powłoki logowania.

W Docs nagpg-agent ma więcej szczegółów.

leedm777
źródło
7

Trochę późno, ale w tej chwili napotykam ten problem, kiedy zdalnie loguję się do komputera (Linux-Centos) i próbuję odszyfrować plik PGP. Spróbowałem sugestii Dave'a, bez powodzenia, szukając google, znalazłem to

gpg: anulowane przez użytkownika

Ta część rozwiązuje mój problem:

Wreszcie po pozwoleniu innym na r + w na tty wydaje się rozwiązać ten problem

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

Mam nadzieję, że to może pomóc komuś innemu.

BR.

Vielinko
źródło
Ten działałby. Po prostu zrób część chmod tty przed wykonaniem su dla użytkownika
user169015
Nie jest to bezpieczne - powinieneś upewnić się, że tty jest własnością poprawnego użytkownika, a może użyj grupy z wymaganymi użytkownikami i uprawnieniami grupy :)
Legooolas