Saya sedang menulis skrip yang membuat arsip proyek dan kemudian membuat arsip 7z untuk memudahkan saya menyimpan versi tertentu dan menyimpan cadangan terenkripsi.
Setelah saya membuat arsip dan saya sampai pada tahap enkripsi, saya ingin mengenkripsi file dengan satu panggilan, gpg
jika memungkinkan, sehingga pengguna hanya perlu memasukkan kata sandi mereka satu kali. Kalau tidak, kita harus men-cache passphrase pengguna dalam memori (yang saya benar-benar ingin tidak melakukannya) atau minta mereka memasukkan dan mengkonfirmasi passphrase mereka untuk setiap proyek tunggal yang diarsipkan (yang lebih buruk).
Apakah ada cara untuk mengirimkan beberapa nama file agar gpg
dapat mengenkripsi semuanya dalam sekali jalan?
Jika saya coba ini:
$ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z
... Saya melihat kesalahan berikut di shell:
usage: gpg [options] --symmetric [filename]
Apakah ada cara untuk melakukan apa yang ingin saya capai?
Jawaban:
Tidak, tidak ada.
Anda mungkin ingin meneruskan frasa sandi dengan salah satu opsi gpg berikut (yang terakhir akan menjadi pilihan paling aman):
sumber
Karena GnuPG tidak mendukung ini secara langsung, cara untuk melakukannya adalah dengan menambahkan layer lain, misalnya menggunakan
tar
.Dan untuk mengekstrak:
Anda akan dibiarkan dengan
project1.7z
danproject2.7z
. Script Anda kemudian dapat mengambil di mana Anda tinggalkan.sumber
Jika Anda ingin mencoba sesuatu yang lain maka GPG ada metode cadangan lain untuk mengenkripsi beberapa file:
sumber asli: http://www.obsd.hu/docs/Unix-backup-with-aes.txt
Penggunaan: cukup gunakan "backup DIRECTORY" untuk enkripsi dan "decrypt DIRECTORY.tar.gz.aes"
sumber
Telah berhasil melakukan sesuatu seperti ini, hari ini:
Mengubah direktori ke direktori yang berisi file target, dan menjalankan skrip Bash untuk menemukan nama file yang diperlukan dan mendaftarkannya ke file teks yang saya panggil
found.txt
.Jalankan skrip Bash yang meminta gpg2 untuk membaca setiap nama file dalam satu loop dan ke dalam variabel memori, dan dalam loop yang sama untuk mengenkripsi menggunakan kunci penandatanganan saya dan menentukan bahwa itu untuk dibaca sendiri. gpg2 memasang munculan untuk memasukkan frasa sandi Anda, yang munculan memiliki sedikit kotak centang di mana Anda dapat memilih untuk tetap mengaktifkan frasa sandi Anda selama sesi. Praktik buruk, tetapi tidak terlalu buruk jika Anda tidak berada di Net, dan Anda langsung mati setelah sesi enkripsi.
Satu-satunya masalah adalah bahwa ada / harus ditangani. Jadi duduk dengan jari saya pada tombol Y dan dienkripsi 51 nos file dalam waktu kurang dari satu menit.
Skrip diberikan di bawah ini:
Script 'find' adalah file bernama
FindFilesAndListtoTextfile.sh
:Skrip enkripsi disebut ReadFilenameAndEncrypt.sh:
Ini harus dijalankan sebagai pengguna biasa:
Semoga ini membantu. Belum tahu cara menghindari y / n.
sumber
Perintah berikut ini berfungsi untuk saya selama saya tidak memiliki nama file dengan spasi di dalamnya.
Anda juga bisa menggunakan perintah find.
Terakhir jika Anda ingin menggunakan file untuk kata sandi, gunakan:
sumber
Ya ada cara mudah:
sumber
echo "Masukkan kata sandi:"
baca kata sandi
Temukan . -type f -exec gpg --passphrase $ password -c {} \;
Hmmmmmm GPG meminta dengan GraphicMessageBox kata sandi untuk setiap file.
Jadi, saya memutuskan untuk menggunakan CRYBULL (program Kriptografi yang saya buat) di C-ANSI. Anda dapat mengunduh secara gratis di www.labolida.com
Temukan . -type f -exec crybull {} {} .cry $ password encode \;
sumber