2010-07-12 12:50:47 +0000 2010-07-12 12:50:47 +0000
139
139

Wie kann man gzip-Dateien in der Kommandozeile mit einem Passwort schützen?

Ich möchte einige tar.gz- (und möglicherweise tar.bz2-) Dateien mit dem tar-Befehl unter Ubuntu 10.04 erstellen.

Ich möchte die Datei mit einem Passwort schützen.

Wie lautet der Befehl dazu (ich habe gegoogelt, aber nichts gefunden, das zeigt, wie man komprimierte Dateien mit einem Passwort erstellt und entpackt).

Weiß jemand, wie man das macht?

Antworten (6)

165
165
165
2010-07-12 13:05:22 +0000

müssen Sie die Unix-Philosophie auf diese Aufgabe anwenden: ein Werkzeug für jede Aufgabe.

Teeren und Komprimieren ist eine Aufgabe für tar und gzip oder bzip2, Krypto ist eine Aufgabe für entweder gpg oder openssl:

Verschlüsseln

% tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

Entschlüsseln

% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

Oder mit gpg

% gpg --encrypt out.tar.gz

Die openssl-Variante verwendet symetrische Verschlüsselung, man müsste dem Empfänger das verwendete ‘Passwort’ (aka ‘den Schlüssel’) mitteilen. die gpg-Variante verwendet eine Kombination aus symetrischer und asymetrischer Verschlüsselung, Sie verwenden den Schlüssel der empfangenden Partei (was bedeutet, dass Sie niemandem das verwendete ‘Passwort’ mitteilen müssen), um einen Sitzungsschlüssel zu erstellen und den Inhalt mit diesem Schlüssel zu verschlüsseln.

, wenn Sie den Weg über zip (oder 7z) gehen: Das ist im Wesentlichen dasselbe wie die openssl-Variante, Sie müssen der empfangenden Partei das Passwort mitteilen.

31
31
31
2012-06-17 20:12:34 +0000

Wenn Sie nur Dateien mit einem Passwort schützen möchten, verwenden Sie das Hand-Zip-Dienstprogramm über die Befehlszeile

zip -e <file_name>.zip <list_of_files>

-e bittet das Zip-Dienstprogramm, die in

genannten Dateien zu verschlüsseln Arbeitsbeispiel:

$ touch file_{0,1}.txt # creates blank files file_0 & file_1    
$ zip -e file.zip file_* # ask zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*
22
22
22
2014-05-01 01:38:27 +0000

Hier sind ein paar Möglichkeiten, dies zu tun. Wenn Sie separate Komprimierungs- und Verschlüsselungsprogramme verwenden, sollten Sie die Komprimierung immer vor der Verschlüsselung durchführen, da verschlüsselte Daten im Wesentlichen nicht komprimierbar sind.

Diese Beispiele komprimieren und verschlüsseln eine Datei namens clear_text.

Mit gpg

$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress

komprimiert gpg standardmäßig die Eingabedatei vor der Verschlüsselung, -c bedeutet, dass eine symmetrische Verschlüsselung mit einem Passwort verwendet werden soll. Die Ausgabedatei wird clear_text.gpg sein. Ein Vorteil der Verwendung von gpg ist, dass es Standard-OpenPGP-Formate verwendet, so dass jede Verschlüsselungssoftware, die OpenPGP unterstützt, die Datei entschlüsseln kann.

Verwendung von mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

Die Option -z komprimiert. Standardmäßig wird dabei eine Datei mit dem Namen clear_text.gz.nc ausgegeben.

Verwenden bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

bcrypt komprimiert standardmäßig vor dem Verschlüsseln, die Option -r dient dazu, dass die Eingabedatei dabei nicht gelöscht wird. Die Ausgabedatei wird standardmäßig clear_text.bfe genannt.

Verwendung von gzip und aespipe

$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress

aespipe ist das, wonach es klingt, ein Programm, das Eingaben auf stdin entgegennimmt und aes-verschlüsselte Daten auf stdout ausgibt. Es unterstützt keine Komprimierung, daher können Sie die Eingabe zuerst durch gzip leiten. Da die Ausgabe nach stdout geht, müssen Sie sie in eine Datei mit einem Namen Ihrer Wahl umleiten. Wahrscheinlich ist das nicht der effektivste Weg, um das zu tun, was Sie fragen, aber aespipe ist ein vielseitiges Werkzeug, so dass ich dachte, es sei eine Erwähnung wert.

16
16
16
2014-10-17 09:52:46 +0000

Sie können 7zip verwenden, um Ihr passwortgeschütztes Archiv zu erstellen. Sie können das Kennwort auf der Befehlszeile (oder in einem Skript) wie folgt angeben:

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

7zip kann auch wie folgt von STDIN lesen:

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

Wenn es zwingend erforderlich ist, Zip-Dateien zu verwenden, sollten Sie mit dem Parameter -t<type> herumspielen (z. B. -tzip).

7
7
7
2010-07-12 12:52:34 +0000

Weder tar, gzip noch bzip2 unterstützen den Passwortschutz. Verwenden Sie entweder ein Komprimierungsformat, das dies unterstützt, z. B. zip, oder verschlüsseln Sie es mit einem anderen Werkzeug, z. B. GnuPG.

5
5
5
2017-05-23 12:25:37 +0000

Erstellen Sie mit:

tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg

Es wird nach einem Passwort gefragt.

Entschlüsseln mit:

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -