Я храню несколько ключей в связке ключей и регулярно хочу зашифровать файл с каждым ключом в связке ключей в качестве получателя. Как лучше всего это сделать, если я не хочу указывать каждого получателя индивидуально с --recipient
или -r
?
2
1 ответ
4
Я бы начал с чего-то вроде этого, чтобы автоматически определять все публичные ключи в вашем брелоке:
[rsaw ~]$ gpg --list-keys --with-colons --fast-list-mode | awk -F: '/^pub/{printf "-r %s ", $5}'
-r 8364FDE4388D0935 -r 8F5B84CD292F9E32 -r EE3656DD5B0E2954 -r F576F163ABF75D93
Это должно дать вам достаточно - есть множество вариантов, как действовать. Один путь: создайте оболочку, которая запускает gpg с этим плюс все аргументы, которые вы передаете, например, добавьте следующее в ~/.bashrc
:
g(){ gpg $(gpg --list-keys --with-colons --fast-list-mode | awk -F: '/^pub/{printf "-r %s ", $5}') "$@"; }
Пример запуска:
[rsaw ~]$ g -aveo /tmp/issue.asc /etc/issue
gpg: using subkey BDE204E4 instead of primary key ABF75D93
gpg: using PGP trust model
gpg: This key belongs to us
gpg: using subkey E2E92BD7 instead of primary key 5B0E2954
gpg: This key belongs to us
gpg: using subkey 0EAE2434 instead of primary key 292F9E32
gpg: This key belongs to us
gpg: using subkey 9E0428AA instead of primary key 388D0935
gpg: This key belongs to us
gpg: reading from `/etc/issue'
gpg: writing to `/tmp/issue.asc'
gpg: RSA/AES256 encrypted for: "9E0428AA Ryan Sawhill <rsaw@devnull>"
gpg: RSA/AES256 encrypted for: "0EAE2434 Obama Mo <obama@wh.gov>"
gpg: RSA/AES256 encrypted for: "E2E92BD7 Mitt Rom <rom@devnull>"
gpg: ELG/AES256 encrypted for: "BDE204E4 Bill C <clinton@nowhere>"
Это хорошо, если вы всегда шифруете файлы и сохраняете вывод в файлы; в противном случае может быть проще, чтобы ваш скрипт / функция выполнял ТОЛЬКО оригинальную команду обнаружения - это обеспечило бы большую гибкость, например:
gpg $(g) -aveo </tmp/myfile