Wie schütze ich eine .tgz-Datei mit einem Passwort unter Unix mit tar?

47

Ich benutze den Unix-Befehl tar wie folgt, um ein Verzeichnis und seine Dateien zu taren:

tar cvzf fileToTar.tgz directoryToTar

Gibt es eine Möglichkeit, die TGZ-Datei mit einem Kennwort zu schützen? Ich habe kennwortgeschützte ZIP-Dateien unter Windows erstellt, daher würde ich davon ausgehen, dass Unix über dieselben Funktionen verfügt. Irgendwelche Ideen?

c12
quelle

Antworten:

40

Verwenden Sie cryptoder gpgfür die Datei.

Einfache Beispiele:

cat filename | crypt > filename.crypt

gpg -c –o filename.gpg filename

Christopher Neylan
quelle
2
Das macht keinen Sinn, wo ist das Passwort?
Alexander Mills
3
@AlexanderMills Die meisten Tools, die Kennwörter akzeptieren, fordern den Benutzer über das Terminal dazu auf und nicht über ein Befehlszeilenargument, um zu verhindern, dass das Kennwort im Verlauf angezeigt wird.
Daffy
37

Sie können den Befehl verwenden:

zip -P password file.zip file

Oder besser:

zip -e file.zip file

man zip
Panta
quelle
Weiß zip genug, um den Kennwortabschnitt der Befehlszeile in dem Moment, in dem er ausgeführt wird, zu bereinigen, sodass er in einem ps nicht (oder nur für Millisekunden) angezeigt wird? Das ist menschenlesbar.
tgm1024
17

Weder das tarFormat noch das gzFormat unterstützen kennwortgeschützte Dateien.

Das Windows- zipFormat kombiniert verschiedene Funktionen: Komprimierung (z. B. gzip), Archivierung mehrerer Dateien in einer (z. B. tar), Verschlüsselung (z. B. gnupg) und wahrscheinlich andere. Unix neigt dazu, einzelne Tools zu haben, von denen jedes eine Sache gut macht und mit denen Sie sie kombinieren können.

Das Unix-Äquivalent einer kennwortgeschützten .zipDatei würde wahrscheinlich so etwas wie foo.tar.gz.gpgoder heißen foo.tgz.gpg.

Und es gibt Open Source zipund unzipTools für Unix, obwohl sie möglicherweise nicht alle Funktionen der Windows-Versionen bieten (ich bin ziemlich sicher, dass das neuere .zipxFormat nicht unterstützt wird).

Keith Thompson
quelle
12

Sie können gpg (= GnuPG) verwenden:

gpg -o fileToTar.tgz.gpg --symmetric fileToTar.tgz

Dadurch werden Sie zur Eingabe einer Passphrase aufgefordert.

Um die Datei später zu entschlüsseln, führen Sie einfach Folgendes aus:

gpg fileToTar.tgz.gpg

Dadurch werden Sie erneut zur Eingabe der Passphrase aufgefordert.

thiagowfx
quelle
Hinweis: -cist eine Abkürzung für --symmetric, dh verwenden Sie die standardmäßige symmetrische Verschlüsselung, dh, für die Ver- und Entschlüsselung wird dieselbe Passphrase verwendet. (Im Gegensatz zu asymmetrisch, bei dem es sich um öffentliche und private Schlüssel handelt.)
Evgeni Sergeev
8

Sie können ccrypt verwenden .

Dinge können mit einer Pipe verschlüsselt werden:

tar cvvjf - /path/to/files | ccrypt > backup.tar.bz2.cpt

Oder an Ort und Stelle:

ccrypt backup.tar.bz2

Zum Automatisieren können Sie einen Passkey in einer Datei speichern und diesen Passkey zum Verschlüsseln verwenden:

ccrypt -k ~/.passkey backup.tar.bz2
c4baf058
quelle