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

Hoe gzip-bestanden beveiligen met een wachtwoord op de opdrachtregel?

Ik wil een aantal tar.gz (en mogelijk tar.bz2) bestanden maken, met behulp van het tar commando op Ubuntu 10.04.

Ik wil het bestand met een wachtwoord beveiligen.

Wat is het commando om dit te doen (ik heb gegoogled, maar niets gevonden dat laat zien hoe je gecomprimeerde bestanden maakt en uitpakt met een wachtwoord).

Weet iemand hoe ik dit moet doen?

Antwoorden (6)

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

je moet de unix-filosofie op deze taak toepassen: één gereedschap voor elke taak.

tarring en compressie is een taak voor tar en gzip of bzip2, crypto is een taak voor of gpg of 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

Of met behulp van gpg

% gpg --encrypt out.tar.gz

de openssl-variant gebruikt symetrische encryptie, je zou de ontvangende partij moeten vertellen over het gebruikte ‘wachtwoord’ (aka ‘de sleutel’). de gpg-variant gebruikt een combinatie van symetrische en asymetrische encryptie, u gebruikt de sleutel van de ontvangende partij (wat betekent dat u niemand hoeft te vertellen welk wachtwoord erbij betrokken is) om een sessiesleutel te maken en de inhoud met die sleutel te versleutelen.

als je de zip (of 7z) route gaat: in essentie is dat hetzelfde als de openssl-variant, je moet de ontvangende partij wel het wachtwoord vertellen.

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

Als je alleen bestanden met een wachtwoord wilt beveiligen, gebruik dan de hand zip utility via de commandoregel

zip -e <file_name>.zip <list_of_files>

-e vraagt de zip utility om de bestanden te versleutelen die genoemd zijn in

Werkend voorbeeld:

$ 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 zijn een paar manieren om dit te doen. Als u aparte compressie- en encryptieprogramma’s gebruikt, moet u altijd eerst comprimeren en dan pas versleutelen, omdat versleutelde gegevens in principe niet te comprimeren zijn.

Deze voorbeelden comprimeren en versleutelen een bestand met de naam clear_text.

Het gebruik van gpg

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

gpg zal standaard het invoerbestand comprimeren vóór encryptie, -c betekent symmetrische encryptie gebruiken met een wachtwoord. Het uitvoerbestand zal clear_text.gpg zijn. Een voordeel van het gebruik van gpg is dat het standaard OpenPGP formaten gebruikt, dus elke encryptie software die OpenPGP ondersteunt zal in staat zijn om het te decrypteren.

Gebruik van mcrypt

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

De -z optie comprimeert. Standaard geeft dit een bestand met de naam clear_text.gz.nc.

Gebruiken bcrypt

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

bcrypt comprimeert standaard alvorens te vercijferen, de -r optie is zodat het invoerbestand niet verwijderd wordt tijdens het proces. Het uitvoerbestand wordt standaard clear_text.bfe genoemd.

gzip en 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 is wat het lijkt, een programma dat invoer ontvangt op stdin en aes-gecodeerde gegevens uitvoert op stdout. Het ondersteunt geen compressie, dus je kunt de invoer eerst door gzip leiden. Omdat de uitvoer naar stdout gaat, moet je het omleiden naar een bestand met een naam van je eigen keuze. Waarschijnlijk niet de meest effectieve manier om te doen wat je vraagt, maar aespipe is een veelzijdig gereedschap, dus ik vond het de moeite waard om het te vermelden.

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

U kunt 7zip gebruiken om uw wachtwoord beveiligde archief te maken. Je kunt het wachtwoord op de opdrachtregel (of in een script) op de volgende manier opgeven:

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

7zip kan ook als volgt van STDIN lezen:

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

Als het verplicht is om zip-bestanden te gebruiken, zou je kunnen spelen met de -t<type> parameter (bijv. -tzip).

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

Noch tar, gzip, noch bzip2 ondersteunt wachtwoordbeveiliging. Gebruik een compressieformaat dat dit wel ondersteunt, zoals zip, of versleutel het met een ander programma zoals GnuPG.

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

Aanmaken met:

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

Het zal je om een wachtwoord vragen.

Decoderen met:

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