Şifre gzip dosyalarını komut satırından nasıl koruyabilir?


130

Ubuntu 10.04 üzerindeki tar komutunu kullanarak bazı tar.gz (ve muhtemelen tar.bz2) dosyalarını oluşturmak istiyorum.

Şifreyi korumak için şifreyi istiyorum.

Bunu yapmak için komut nedir (Googled, ancak bir şifreyi kullanarak sıkıştırılmış dosyaların nasıl oluşturulacağını ve çıkartılacağını gösteren hiçbir şey bulamadım).

Bunu nasıl yapacağını bilen var mı?

Yanıtlar:


159

unix-felsefesini bu göreve uygulaman gerekiyor: her görev için bir araç.

katranlama ve sıkıştırma için bir iş tarve gzipya bzip2, kripto biri için bir iş gpgya openssl:

şifrele

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

azalmak

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

Veya gpg kullanarak

 % gpg --encrypt out.tar.gz

openssl-varyantı simetrik şifreleme kullanır, alıcı tarafa kullanılan 'şifre' (aka 'anahtar') hakkında bilgi vermeniz gerekir. gpg-varyantı, simetrik ve asimetrik şifrelemenin bir kombinasyonunu kullanır, alıcı tarafın anahtarını kullanırsınız (bu, bir kimseye dahil olan herhangi bir şifreyi söylemeniz gerekmediği anlamına gelir) bir oturum anahtarı oluşturmak ve içeriği o anahtarla şifrelemek demektir.

zip (veya 7z) rotasına giderseniz: esas olarak openssl-varyantı ile aynıdır, alıcı tarafa şifreyi anlatmanız gerekir.


26
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz
Openssl

1
@ nathan.f77 bu komut ayrıca işleri openssl'a aktarmadan nasıl yapıldığını da gösterir. openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
Keith Smiley,

3
@KeithSmiley eğer büyük arşivleriniz varsa ve çok fazla alanınız yoksa (VPS'de olduğu gibi) boru için daha az yer kaplar.
Andrew Savinykh

Bunu bir mac üzerinde çalıştırmak gibi görünmüyor. Zaten bu farklı mı?
eleijonmarck

3
@eleijonmarck, "<insert-error-message-here>" çünkü işe yaramadı bölümünü veriyor……
akira

29

Amacınız sadece dosyaları şifreyle korumaksa, el fermuarını komut satırından kullanın

zip -e <file_name>.zip <list_of_files>

-e, zip yardımcı programında belirtilen dosyaları şifrelemesini ister.

Çalışma örneği:

$ 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*

11
Zip dosyası şifrelemesi hiçbir şekilde güvenli değildir.
Kristopher

4
@KristopherIves, güvensizliği detaylandırabilir misiniz?
tscizzle


4
@KristopherIves Çalışması için "şifreli arşivdeki şifrelenmemiş biçimde dosyalardan en az birini içeren başka bir ZIP arşivi " çalışması gerekir.
Franklin Yu,

4
"Düz metnin yalnızca bir bölümünü bilmeniz gerekir (en az 13 bayt)". Bu yapar çok (zaten oldukça kötü olan) daha savunmasız bütün bir şifresiz dosyası gereklidir takdirde daha. Ayrıca, zip şifrelemesi kaba kuvvet saldırılarına karşı dirençli değildir (örneğin Jack the Ripper ile). Kimse ciddi bir şey için kullanmamalı.
EM0

21

İşte bunu yapmanın birkaç yolu. Unutulmaması gereken bir şey, ayrı sıkıştırma ve şifreleme araçları kullanacaksanız, şifrelenmiş veriler esasen sıkıştırılamaz olduğundan, her zaman şifrelemeden önce sıkıştırmanız gerekir.

Bu örnekler denilen dosyayı sıkıştırır ve şifreler clear_text.

kullanma gpg

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

gpg giriş dosyasını varsayılan olarak şifrelemeden önce sıkıştıracaktır, -cbir şifreyle simetrik şifreleme kullanmak demektir. Çıkış dosyası olacaktır clear_text.gpg. Kullanmanın bir faydası, gpgstandart OpenPGP formatlarını kullanmasıdır, bu yüzden OpenPGP'yi destekleyen herhangi bir şifreleme yazılımı şifresini çözebilir.

kullanma mcrypt

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

-zSeçenek sıkıştırır. Varsayılan olarak bu, adında bir dosya çıkarır clear_text.gz.nc.

kullanma bcrypt

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

bcrypt, varsayılan olarak şifrelemeden önce sıkıştırılır, -rseçenek, girdi dosyasının işlem sırasında silinmemesidir. Çıkış dosyası clear_text.bfevarsayılan olarak çağrılır .

kullanılması gzipveaespipe

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

aespipe stdin'e girdi alan ve aes şifreli veriyi stdout'ta çıkaran bir program gibi geliyor. Sıkıştırmayı desteklemediğinden, girişi ilk önce gzip ile yönlendirebilirsiniz. Çıktı stdout'a gittiğinden, onu kendi seçtiğiniz bir dosyaya yönlendirmek zorunda kalacaksınız. Muhtemelen istediğin şeyi yapmanın en etkili yolu değil, borusu çok yönlü bir araçtır, bu yüzden bahsetmeye değer olduğunu düşündüm.


15

Parola korumalı arşivinizi oluşturmak için 7zip kullanabilirsiniz. Şifreyi komut satırında (veya bir komut dosyasında) aşağıdaki şekilde belirleyebilirsiniz:

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

7zip, STDIN'den aşağıdaki gibi de okuyabilir:

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

Zip dosyalarını kullanmak zorunluysa, -t<type>parametre ile oynamak isteyebilirsiniz (örn. -tzip).


5
Bunu cevap olarak seçtim çünkü soruyu cevaplayan tek kişi oydu. Soru bir mesajı nasıl şifreleyeceği değil, bir arşivi nasıl şifreyle koruyacağıdır. Tek yapmam gereken buydu. (Gmail sunucu eklerimi engelliyordu çünkü ekte güvensiz bir şey olduğuna karar verdi ve sadece bir şifre eklemeye ihtiyacım vardı. Güvenli olması
gerekmiyor

7

Ne tar, gzip, ne bzip2 şifre korumasını desteklemez. Zip gibi bir sıkıştırma formatı kullanın ya da GnuPG gibi başka bir araçla şifreleyin.


Ah, bu neden çevrimiçi bir şey bulamadığımı açıklıyor. Sanırım zip için gideceğim.
morf 12

Gah !, Özyinelemeli bir dizini passwors ile sıkıştırmaya çalışıyorum ve yalnızca foobar adında bir (boş) dizin olarak bir zip dosyası oluşturur. İşte kullandığım komut: zip -e foobar.zip foobar. foobar geçerli dizindeki boş olmayan bir klasördür
morpheous 12

4
Tıpkı adamın söylediği gibi -r.
Ignacio Vazquez-Abrams

5

Şununla oluştur:

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

Sizden bir şifre isteyecektir.

Şununla şifresini çöz:

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.