Как очистить кэш gpg?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
жучара
Сообщения: 1051
ОС: астралинукс

Как очистить кэш gpg?

Сообщение жучара »

Дрзузья! Три текстовых файла заполним и зашифруем:

Shell

$ echo 0_text > _0.txt
$ echo 1_text > _1.txt
$ echo 2_text > _2.txt
$
$ gpg --batch --passphrase 0 -c _0.txt
$ gpg --batch --passphrase 1 -c _1.txt
$ gpg --batch --passphrase 2 -c _2.txt
$
И расшифруем. Что важно- после команды gpg -d будет вылезать графическое окошечко для ввода пароля

Shell

$ gpg -d _1.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
1_text
$
$ gpg -d _0.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
0_text
$
$ gpg -d _2.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
2_text
$
А теперь будем повторять расшифровку, но на этот раз окна для ввода пароля выводиться не будет!

Shell

$ gpg -d _0.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
0_text
$
$ gpg -d _1.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
1_text
$
$ gpg -d _2.txt.gpg
gpg: данные зашифрованы алгоритмом AES256.CFB
gpg: зашифровано одной фразой-паролем
2_text
$
Там какой-то кэш. И оно в кэше смотрит пароли и подбирает их. Если будем расшифровывать в разном порядке всё равно будет выводить правильно. Как очистить кэш? --no-symkey-cache не предлагать, ибо просто не использует кэш при шифровании (причём сомнительно как-то не использует, ага, но об этом после):

Shell

man gpg
...
--symmetric
-c Encrypt with a symmetric cipher using a passphrase. The default symmetric cipher used is AES-128, but may be chosen
with the --cipher-algo option. This command may be combined with --sign (for a signed and symmetrically encrypted mes‐
sage), --encrypt (for a message that may be decrypted via a secret key or a passphrase), or --sign and --encrypt to‐
gether (for a signed message that may be decrypted via a secret key or a passphrase). gpg caches the passphrase used
for symmetric encryption so that a decrypt operation may not require that the user needs to enter the passphrase. The
option --no-symkey-cache can be used to disable this feature.
Хотелось бы просто очистить кэш, но увы:

Shell

$ gpg --no-symkey-cache
gpg: Внимание: команда не отдана. Пытаюсь угадать, что имелось в виду ...
gpg: Пишите сообщение ...
^C
gpg: signal Interrupt caught ... exiting

$
...Справедливости ради, через некоторое время кэш сам очищается, что ли, и приходится вновь вводить пароль. Но тем не менее. Сабж. Спасибо, кто откликнется. Debian 12.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5372
ОС: Gentoo

Re: Как очистить кэш gpg?

Сообщение /dev/random »

gpgconf --kill gpg-agent

Многие программы, запрашивающие у пользователя криптографические ключи/пароли, умеют запрашивать и хранить их через запускаемые в фоне процессы-"агенты". Например, ssh - через ssh-agent, gpg - через gpg-agent и т.д. В ssh агент по умолчанию выключен, а в gpg - включён всегда.
Спасибо сказали: