Enkripsi direktori dengan GnuPG?

10

Apakah ada cara untuk mengenkripsi direktori menggunakan gpg? Tampaknya hanya menerima file sebagai argumen.

Gladimdim
sumber
Ada juga cara untuk mengenkripsi seluruh direktori atau drive, tetapi cakupannya berbeda: mereka menawarkan enkripsi transparan (Anda cukup mengetik kata sandi untuk memasang drive), tetapi hasilnya tidak dapat dibaca oleh GPG atau PGP.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

11

Mengapa bukan tarfile yang akan dienkripsi lalu dienkripsi tarball?

alex
sumber
Saya menemukan ini sebagai solusinya. Itu tidak fleksibel dan membutuhkan banyak sumber daya untuk tar dan tanggal gpg. Terima kasih atas jawabannya!
gladimdim
@ gladimdim: terima kasih telah menerima, tetapi apa yang Anda maksud dengan "tidak fleksibel" dan "banyak sumber daya"? Atau apakah ada kesalahan ketik?
alex
oleh "tidak fleksibel" Maksud saya, saya perlu direktori tar secara manual kemudian gpg itu. Saya memiliki sekitar 60Gb foto yang sekarang sudah tarballed dan gpged. Butuh sekitar 2 jam dan 4 jendela terminal bersamaan untuk mempercepat proses ini. Sekarang saya hanya tarball dan gpg setiap direktori baru dengan foto yang saya buat.
gladimdim
Hm, waktu itu rasanya cukup masuk akal untuk ukuran data itu. Apakah Anda berharap untuk menjalankannya lebih cepat? Apa yang Anda rencanakan ketika Anda membutuhkan satu foto itu - dekripsi / untar semua 60Gigs?
alex
2

Saya baru saja melihat opsi --multifiledi halaman manual:

Ini memodifikasi perintah lain tertentu untuk menerima beberapa file untuk diproses pada baris perintah atau membaca dari STDIN dengan setiap nama file pada baris yang terpisah. Ini memungkinkan banyak file diproses sekaligus. --multi‐ file saat ini dapat digunakan bersama dengan --verify, --encrypt, dan --decrypt. Perhatikan bahwa --multifile --verify tidak dapat digunakan dengan tanda tangan terpisah.

Yang Anda cari secara spesifik adalah --encrypt-filesdan, sekali lagi, halaman manualnya:

Identik dengan --multifile --encrypt.

tepang
sumber
1
Terima kasih, ini berfungsi baik kecuali bahwa gpg tidak mendukung kunci --multiple dengan opsi --symmetric (Saya ingin mengenkripsi hanya menggunakan frasa sandi).
gladimdim
1

Hai saya membaca komentar pada jawaban yang telah ditandai sebagai dikecualikan; Sepertinya Anda harus dibuat sadar akan keajaiban |(pipa anonim) periksa jawaban saya baru saja diposting di superuser dan Anda akan menemukan bahwa tar& gpgdapat digabungkan bersama sehingga output Anda dikompresi dan dienkripsi sebelum menjadi output. Catatan itu masih akan menggunakan sumber daya sistem yang signifikan jadi periksa manhalaman untuk niceperintah untuk membatasi kemampuan perintah untuk memakan hanya persentase tertentu dari sumber daya. Juga sementara saya berminat untuk menyarankan topik yang dapat membuat hidup Anda lebih mudah di baris perintah secara umum; lihat deskriptor file dan beri nama pipa untuk melewatkan data.

Jika Anda ingin melihat jenis sihir apa yang dapat dilakukan ketika subjek di atas dipahami, maka periksa log build Travis-CI dan skrip terkait untuk solusi terkait dengan mengotomatisasi GnuPG pada baris perintah.

---- Pembaruan

Seperti yang diminta, contoh untuk berurusan dengan direktori dapat ditemukan dalam skrip yang disebutkan sebelumnya pada baris 680 dan contoh yang lebih umum adalah ...

#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="[email protected]"
gpg_email="${2:-$default_gpg_email}"
_dir_name="${dir_path##*/}"
_dir_name="${_dir_name%/*}"
Var_star_date="$(date -u +%s)"

if [ -d "${dir_path}" ]; then
    tar -cz - "${dir_path}" | gpg --always-trust --armor --batch --no-tty --encrypt --recipient ${gpg_email} > /tmp/${Var_star_date}_${_dir_name}.tgz.gpg"
else
    echo "${0##*/} operates on directories"
    exit 1
fi

... yang mungkin dijalankan dengan script-name.sh /path/to/diratau script-name.sh /path/to/dir [email protected]dan harus menampilkan ke /tmpdirektori file<current-date>_<top-dir-name>.tgz.gpg

S0AndS0
sumber
Bisakah Anda menulis contoh?
Nikana Reklawyks
Ya, meskipun mungkin butuh sedikit :-D
S0AndS0