Bazı dosyaları unix'te şifrelemek için iyi bir çözüm nedir? [kapalı]


44

Linux'ta bazı dizinleri şifrelemek için bir yardımcı program arıyorum. Herhangi bir tam disk şifreleme hizmeti aramıyorum, ancak yalnızca dosyaları bulutta depolamak amacıyla birkaç dizini şifrelemek için. Bir kere onları aldıktan sonra, erişilmeden önce şifrelerini çözmem gerekiyor. Birkaç dizin için (birkaç yüz GB boyutunda) bunu yapmak istiyor. Herhangi bir fikir? Tercihen CLI bazlı.

Yanıtlar:


51

Bu görev için sadece GnuPG kullanıyorum. Klasörler ilk önce bir TAR-GZ arşivi içine paketlenir:

tar czf files.tar.gz /path/to/my/files

Henüz yapılmadıysa, önce bir GPG özel / genel anahtar çifti oluşturmanız gerekir:

gpg --gen-key

Talimatları takip et. İlk test için varsayılan değerler yeterli olmalıdır. Bunun gibi bir şey görünecektir:

gpg (GnuPG) 2.0.18; Telif Hakkı (C) 2011 Özgür Yazılım Vakfı, Inc.
Bu ücretsiz bir yazılımdır: değiştirmek ve yeniden dağıtmakta özgürsünüz.
Yasaların izin verdiği ölçüde, GARANTİ YOKTUR.

Lütfen ne tür bir anahtar istediğinizi seçin:
   (1) RSA ve RSA (varsayılan)
   (2) DSA ve Elgamal
   (3) DSA (yalnızca işaret)
   (4) RSA (yalnızca işaret)
Senin seçimin? 1
RSA anahtarları 1024 ila 4096 bit uzunluğunda olabilir.
Hangi anahtar boyutunu istiyorsun? (2048) 4096
İstenen anahtar boyutu 4096 bit
Lütfen anahtarın ne kadar süre geçerli olacağını belirtin.
         0 = anahtarın süresi dolmuyor
        = anahtar n gün içinde sona eriyor
      w = anahtar n hafta içinde sona eriyor
      m = anahtar n ay içinde sona eriyor
      y = anahtar n yılda sona eriyor
Anahtar için geçerli mi? (0)
Anahtarın süresi dolmuyor
Bu doğru mu? (y / N) y

GnuPG anahtarınızı tanımlamak için bir kullanıcı kimliği oluşturması gerekir.

Gerçek ad: Dosya Şifreleme Anahtarı
E-posta adresi: admin@company.org
Yorum: Dosya Şifreleme Anahtarı
Bu USER-ID'yi seçtiniz:
    "Dosya Şifreleme Anahtarı (Dosya Şifreleme Anahtarı)"

(N) ame, (C) konum, (E) posta veya (O) kay / (Q) uit? Ö

Anahtar için bir parola girmeniz istenir. Güçlü bir tane kullanmanız şiddetle tavsiye edilir. Dosyaların şifrelenmesi için gerekli değildir, bu nedenle toplu kullanım hakkında daha sonra endişelenmeyin.

Her şey yapılırsa, ekranınızda böyle bir şey görünecektir:

Çok fazla rastgele bayt oluşturmamız gerekiyor. Gerçekleştirmek için iyi bir fikir
başka bir işlem (klavyede yazın, fareyi hareket ettirin,
diskler) asal üretim sırasında; bu rasgele sayı verir
Jeneratör yeterince entropi kazanmak için daha iyi bir şans.
Çok fazla rastgele bayt oluşturmamız gerekiyor. Gerçekleştirmek için iyi bir fikir
başka bir işlem (klavyede yazın, fareyi hareket ettirin,
diskler) asal üretim sırasında; bu rasgele sayı verir
Jeneratör yeterince entropi kazanmak için daha iyi bir şans.
gpg: Anahtar FE53C811 sonuçta güvenilir olarak işaretlendi
ortak ve gizli anahtar oluşturuldu ve imzalandı.

gpg: trustdb'yi kontrol etme
gpg: 3 marjinal gerekli, 1 tamamlandı gerekli, PGP güven modeli
gpg: derinlik: 0 geçerli: 1 imzalı: 0 güven: 0, 0q, 0n, 0m, 0f, 1u
pub ***** / ******** 2013-03-19
      Anahtar parmak izi = **** **** **** **** **** **** **** **** **** **** ****
uid Dosya Şifreleme Anahtarı (Dosya Şifreleme Anahtarı) 
alt ***** / ******** 2013-03-19

Şimdi genel anahtar dosyasını başka makinelere aktarmak için dışa aktarmak isteyebilirsiniz :

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

File Encryption KeyAnahtar üretiminin işlemi sırasında girilen isim benim.

Şimdi yeni oluşturulan arşivde GnuPG kullanıyorum:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Artık files.tar.gz.gpgşifrelenmiş bir dosyanız var.

Aşağıdaki komutu kullanarak şifresini çözebilirsiniz (parolanız istenecektir):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

Bütün sihir bu.

Anahtarınızı yedeklediğinizden emin olun! Ve parolanızı asla unutma! Yedeklenmedi veya unutulmazsa, gigabayt veri çöplüğüne sahipsiniz!

Özel anahtarınızı bu komutla yedekleyin:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

Avantajları

  • Şifreleyicilerden hiçbirinin şifreleme hakkında hassas bilgileri bilmesi gerekmez - şifreleme, genel anahtarla yapılır. (Yerel iş istasyonunuzda anahtar çifti oluşturabilir ve genel anahtarı yalnızca sunucularınıza aktarabilirsiniz)
  • Komut dosyalarında veya işlerde hiçbir şifre görünmez
  • İstediğiniz herhangi bir sistemde şifreler kadar olabilir
  • Özel anahtarınızı ve parola sırrınızı gizli tutarsanız, her şey yolunda gider ve ödün vermesi çok zordur.
  • Belirli PGP / GPG uygulamasını kullanarak Unix, Windows ve Linux platformlarındaki özel anahtarla şifresini çözebilirsiniz.
  • Şifreleme ve şifre çözme sistemleri için özel ayrıcalıklara gerek yok, montaj yok, kap yok, özel dosya sistemleri yok

1
Verilere bağlı olarak, olabileceğini daha hızlı Not çalıştırmak için tarolmadan zsıkıştırarak önlemek için anahtarı.
l0b0

28

Benim açımdan, çoğunlukla iki yöntem kullanıyorum:

İlk yöntem: tar ve openssl

Dizini tar

tar cvf backup.tar /path/to/folder

Ayrıntılı modu kapatmak için [v] anahtarını tar komutundan kaldırabilirsiniz.

şifrele

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

Openssl destekler (openssl --help) aes-128-cbc'yi başka bir şifre yöntemi ile değiştirebilirsiniz.

azalmak

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Şifre isteyecektir.

İkinci yöntem: şifreli zip

zip -r -0 -e backup.zip /path/to/folder

Şifre isteyecektir.

  • -r özyinelemeli anlamına gelir (tüm klasör ağacı)
  • -0 yalnızca mağaza anlamına gelir (daha hızlı sıkıştırmaz)
  • -e arşiv şifrelemek anlamına gelir

Bunun bir avantajı: Windows tabanlı sistemle daha iyi çalışması.


3
Komut satırında şifre vermek iyi bir fikir değildir. Parola kabuk tarihinde kalır.
pbies

1
Unutulmamalıdır zipşifreleme kırılabilir olduğu söyleniyor.
Acumenus

22

Dosyalarınızı genel / özel bir anahtar çifti ile şifrelemek istemiyorsanız ve bunun yerine bir geçiş ifadesiyle sadece simetrik şifreleme kullanmak istiyorsanız, aşağıdaki komutu kullanın:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Parola ifadeniz istenecektir. Bundan sonra adlı şifreli bir dosya files.tar.gz.gpgoluşturulur.

Şifresini çözmek için komutu kullanın.

gpg --decrypt files.tar.gz.gpg > files.tar.gz


2

Bu amaçla FUSE şifrelemesini (örneğin encfs ) öneririm - daha küçük veriler için gpg kullanırdım.

Kullanıcı alanında uygulanmıştır, böylece herhangi bir özel ayrıcalık gerekmez.


1

Veri şifreleme amaçlı bazı Linux dosya sistemleri vardır. LUX hakkında zaten düşündünüz mü ?


1

Bir dosyayı şifrelemenin çok basit bir yolu:

gpg -c filename.ext

Sizden iki kez bir parola istenir ve gpg oluşturulur filename.ext.gpg. Şifrelenmiş dosyayı bulut servisinize yükleyin. Dosyayı kurtarmak için kullanın:

gpg filename.ext.gpg

Hangi yeniden yaratacak filename.ext. Not o şifrelenmemiş dosyaları güvenli değildir ve ilgili veriler bile silindikten sonra depolama ortamı üzerinde kalacaktır. Sadece gpg kabı güvende. EncFS , dosya düzeyinde bulut tabanlı şifreleme için daha pratik bir alternatiftir.

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.