Verzeichnis mit GnuPG verschlüsseln?

10

Gibt es eine Möglichkeit, ein Verzeichnis mit zu verschlüsseln gpg? Es scheint nur Dateien als Argumente zu akzeptieren.

gladimdim
quelle
Es gibt auch Möglichkeiten, ein ganzes Verzeichnis oder Laufwerk zu verschlüsseln, die sich jedoch in ihrem Umfang unterscheiden: Sie bieten eine transparente Verschlüsselung (Sie geben nur ein Kennwort ein, um das Laufwerk bereitzustellen), aber das Ergebnis kann nicht von GPG oder PGP gelesen werden.
Gilles 'SO - hör auf böse zu sein'

Antworten:

11

Warum nicht tardie zu verschlüsselnden Dateien und dann den Tarball verschlüsseln?

Alex
quelle
Ich fand das die Lösung. Es ist nicht flexibel und erfordert eine Menge Ressourcen, um tar und gpg Datum. Danke für die Antwort!
Gladimdim
@gladimdim: Danke fürs Akzeptieren, aber was meinst du mit "nicht flexibel" und "viele Ressourcen"? Oder gab es einen Tippfehler?
Alex
mit "nicht flexibel" meinte ich, dass ich manuell tar-verzeichnis brauchte, dann gpg es. Ich habe ungefähr 60 GB Bilder, die jetzt tarballed und gpged sind. Es dauerte ungefähr 2 Stunden und 4 gleichzeitige Terminalfenster, um diesen Prozess zu beschleunigen. Jetzt tarball und gpg ich einfach jedes neue Verzeichnis mit Bildern, die ich erstelle.
Gladimdim
Hm, das scheint eine ziemlich vernünftige Zeit für diese Datengröße zu sein. Haben Sie erwartet, dass es viel schneller läuft? Was hast du vor, wenn du eines dieser Bilder brauchst - alle 60Gigs entschlüsseln / entpacken?
Alex
2

Ich habe gerade die Option --multifileauf der Manpage gesehen:

Dadurch werden bestimmte andere Befehle so geändert, dass mehrere Dateien zur Verarbeitung in der Befehlszeile akzeptiert oder aus STDIN mit jedem Dateinamen in einer separaten Zeile gelesen werden. Dadurch können viele Dateien gleichzeitig verarbeitet werden. --multi‐ file kann derzeit zusammen mit --verify, --encrypt und --decrypt verwendet werden. Beachten Sie, dass --multifile --verify nicht mit getrennten Signaturen verwendet werden darf.

Was Sie speziell suchen, ist --encrypt-filesund wieder die Manpage:

Identisch mit --multifile --encrypt.

Tshepang
quelle
1
Vielen Dank, dies funktioniert gut, außer dass gpg --multiple key mit der Option --symmetric nicht unterstützt (ich möchte nur mit der Passphrase verschlüsseln).
Gladimdim
1

Hey, ich habe die Kommentare zu der Antwort gelesen, die als ausgenommen markiert wurde. Sieht aus wie Sie sollten sich bewusst von der Magie gemacht werden |(anonyme Rohre) überprüfen die ich gerade auf gepostet Antwort Super - User finden und Sie werden feststellen , dass tar& gpgkönnen verbunden zusammen , so dass die Ausgabe vor ausgegeben wird komprimiert und verschlüsselt. Beachten Sie, dass weiterhin erhebliche Systemressourcen verwendet werden. Überprüfen Sie daher die manSeiten auf niceBefehle, um die Fähigkeit eines Befehls einzuschränken, nur einen bestimmten Prozentsatz der Ressourcen zu verbrauchen. Auch wenn ich in der Stimmung bin, Themen vorzuschlagen, die Ihnen das Leben auf der Kommandozeile im Allgemeinen erleichtern könnten; Schauen Sie sich Dateideskriptoren und Named Pipes an, um Daten weiterzugeben.

Wenn Sie sehen möchten, welche Art von Magie ausgeführt werden kann, wenn die oben genannten Themen verstanden werden, überprüfen Sie die Travis-CI- Erstellungsprotokolle und zugehörigen Skripte auf Lösungen zur Automatisierung von GnuPG in der Befehlszeile.

---- Aktualisierung

Wie angefordert, finden Sie ein Beispiel für den Umgang mit Verzeichnissen in dem zuvor erwähnten Skript in Zeile 680, und ein allgemeineres Beispiel wäre ...

#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="[email protected]"
gpg_email="${2:-$default_gpg_email}"
_dir_name="${dir_path##*/}"
_dir_name="${_dir_name%/*}"
Var_star_date="$(date -u +%s)"

if [ -d "${dir_path}" ]; then
    tar -cz - "${dir_path}" | gpg --always-trust --armor --batch --no-tty --encrypt --recipient ${gpg_email} > /tmp/${Var_star_date}_${_dir_name}.tgz.gpg"
else
    echo "${0##*/} operates on directories"
    exit 1
fi

... die vielleicht mit script-name.sh /path/to/diroder laufen script-name.sh /path/to/dir [email protected]und eine Datei in das Verzeichnis ausgeben sollen/tmp<current-date>_<top-dir-name>.tgz.gpg

S0AndS0
quelle
Können Sie ein Beispiel schreiben?
Nikana Reklawyks
Ja, obwohl es ein bisschen dauern kann :-D
S0AndS0