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

Come proteggere con password i file gzip sulla linea di comando?

Voglio creare alcuni file tar.gz (ed eventualmente tar.bz2), usando il comando tar su Ubuntu 10.04.

Voglio proteggere il file con una password.

Qual è il comando per farlo (ho cercato su Google, ma non ho trovato nulla che mostri come creare ed estrarre file compressi usando una password).

Qualcuno sa come farlo?

Risposte (6)

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

devi applicare la filosofia unix a questo compito: uno strumento per ogni compito.

la catramatura e la compressione è un lavoro per tar e gzip o bzip2, la crittografia è un lavoro per gpg o openssl:

Encrypt

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

Decrypt

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

Oppure usando gpg

% gpg --encrypt out.tar.gz

la variante openssl usa la crittografia simmetrica, dovresti dire alla parte ricevente la ‘password’ usata (aka ‘la chiave’). la variante gpg usa una combinazione di crittografia simmetrica e asimmetrica, si usa la chiave della parte ricevente (il che significa che non si deve dire a nessuno la password usata) per creare una chiave di sessione e criptare il contenuto con quella chiave.

se scegli la via dello zip (o 7z): essenzialmente è la stessa della variante openssl, devi dire alla parte ricevente la password.

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

Se il tuo intento è solo quello di proteggere i file con una password, allora usa l'utilità zip manuale attraverso la linea di comando

zip -e <file_name>.zip <list_of_files>

-e chiede all'utilità zip di criptare i file menzionati in

Esempio di lavoro:

$ 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

Ecco alcuni modi per farlo. Una cosa da notare è che se hai intenzione di usare strumenti di compressione e crittografia separati dovresti sempre comprimere prima della crittografia, poiché i dati crittografati sono essenzialmente non comprimibili.

Questi esempi comprimono e criptano un file chiamato clear_text.

Usando gpg

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

gpg comprimerà il file di input prima della crittografia per default, -c significa usare la crittografia simmetrica con una password. Il file di output sarà clear_text.gpg. Un vantaggio dell'uso di gpg è che usa formati standard OpenPGP, quindi qualsiasi software di crittografia che supporti OpenPGP sarà in grado di decifrarlo.

Usando mcrypt

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

L'opzione -z comprime. Per default questo produce un file chiamato clear_text.gz.nc.

Using bcrypt

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

bcrypt comprime prima di criptare per default, l'opzione -r è così che il file di input non viene cancellato nel processo. Il file di output è chiamato clear_text.bfe per impostazione predefinita.

Usando gzip e 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 è quello che sembra, un programma che prende input su stdin e produce dati criptati aes su stdout. Non supporta la compressione, quindi potete far passare l'input attraverso gzip prima. Poiché l'output va su stdout dovrete reindirizzarlo a un file con un nome di vostra scelta. Probabilmente non è il modo più efficace per fare quello che stai chiedendo, ma aespipe è uno strumento versatile e ho pensato che valesse la pena menzionarlo.

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

Puoi usare 7zip per creare il tuo archivio protetto da password. Puoi specificare la password sulla linea di comando (o in uno script) nel seguente modo:

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

7zip può anche leggere da STDIN come segue:

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

Se è obbligatorio usare i file zip, potresti voler giocare con il parametro -t<type> (per esempio -tzip).

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

Né tar, né gzip, né bzip2 supportano la protezione con password. O usate un formato di compressione che lo fa, come zip, o crittografatelo con un altro strumento come GnuPG.

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

Crea con:

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

Vi chiederà una password.

Decifra con:

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