Wie kann ich eine Datei mit allen Schlüsseln eines Schlüsselbunds verschlüsseln?

2

Ich verwalte mehrere Schlüssel in einem Schlüsselbund und möchte regelmäßig eine Datei mit jedem Schlüssel im Schlüsselbund als Empfänger verschlüsseln. Was ist der beste Weg, um dies zu erreichen, wenn ich nicht jeden Empfänger einzeln mit den Optionen --recipientoder angeben möchte -r?

Beau Simensen
quelle
Wie wäre es, ein Bash / Batch-Skript zu schreiben? An welchem ​​Betriebssystem arbeiten Sie?
20.

Antworten:

4

Ich würde mit so etwas beginnen, um alle Pubkeys in Ihrem Schlüsselbund automatisch zu erkennen:

[rsaw ~]$ gpg --list-keys --with-colons --fast-list-mode | awk -F: '/^pub/{printf "-r %s ", $5}'
-r 8364FDE4388D0935 -r 8F5B84CD292F9E32 -r EE3656DD5B0E2954 -r F576F163ABF75D93

Das sollte Ihnen genug geben - es gibt unzählige Möglichkeiten, wie Sie vorgehen sollen. Eine Route: Erstellen Sie einen Wrapper, auf dem gpg mit diesen und allen übergebenen Argumenten ausgeführt wird. Fügen Sie beispielsweise Folgendes hinzu ~/.bashrc:

g(){ gpg $(gpg --list-keys --with-colons --fast-list-mode | awk -F: '/^pub/{printf "-r %s ", $5}') "$@"; }

Beispiel für das Ausführen:

[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 <[email protected]>"
gpg: RSA/AES256 encrypted for: "E2E92BD7 Mitt Rom <rom@devnull>"
gpg: ELG/AES256 encrypted for: "BDE204E4 Bill C <clinton@nowhere>"

Dies ist hilfreich, wenn Sie Dateien immer verschlüsseln und die Ausgabe in Dateien speichern. Andernfalls könnte es einfacher sein, Ihr Skript / Ihre Funktion NUR den ursprünglichen Erkennungsbefehl ausführen zu lassen - dies würde mehr Flexibilität ermöglichen, zB:

gpg $(g) -aveo </tmp/myfile
rsaw
quelle