Ubuntu 10.04でtarコマンドを使用して、tar.gz(および場合によってはtar.bz2)ファイルを作成します。
ファイルをパスワードで保護したい。
これを実行するためのコマンドは何ですか(私はGoogledを使用しましたが、パスワードを使用して圧縮ファイルを作成および抽出する方法を示すものは見つかりませんでした)。
誰もがこれを行う方法を知っていますか?
あなたはこのタスクにunix-philosophyを適用しなければなりません:各タスクのための1つのツール。
tarringとcompressionはtar
とgzip
またはbzip2
の仕事で、cryptoはgpg
またはopenssl
の仕事です。
暗号化
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
復号化
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
またはgpgを使う
% gpg --encrypt out.tar.gz
openssl-variantは対称暗号化を使用します、あなたは使用された 'パスワード'(別名 'キー')について受信側に知らせる必要があります。 gpg-variantは、対称暗号化と非対称暗号化の組み合わせを使用します。受信者の鍵を使用して(つまり、誰にもパスワードを知らせる必要はありません)、セッション鍵を作成し、その鍵でコンテンツを暗号化します。
あなたがZip(または7z)ルートを行くなら:本質的にそれはopenssl-variantと同じです、あなたはパスワードについて受信側に知らせる必要があります。
あなたの意図が単にファイルをパスワードで保護することであるならば、それからコマンドラインを通して手のZipユーティリティを使ってください
Zip -e <file_name>.Zip <list_of_files>
-e Zipユーティリティに、に記載されているファイルの暗号化を要求します。
作業例:
$ 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*
これを行うにはいくつかの方法があります。注意すべきことは、別々の圧縮ツールと暗号化ツールを使用する場合は、暗号化されたデータは基本的に圧縮不可能なので、常に暗号化の前に圧縮する必要があるということです。
これらの例は、clear_text
というファイルを圧縮して暗号化します。
gpg
を使う
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpgはデフォルトで暗号化の前に入力ファイルを圧縮します、-c
はパスワードで対称暗号化を使うことを意味します。出力ファイルはclear_text.gpg
になります。 gpg
を使用する利点の1つは、標準のOpenPGPフォーマットを使用することです。したがって、OpenPGPをサポートする暗号化ソフトウェアであれば、それを復号化できます。
mcrypt
を使う
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
-z
オプションは圧縮します。デフォルトでは、これはclear_text.gz.nc
というファイルを出力します。
bcrypt
を使う
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
デフォルトでは、bcryptは暗号化前に圧縮します。-r
オプションは、入力ファイルが処理中に削除されないようにするためのものです。出力ファイルはデフォルトでclear_text.bfe
と呼ばれます。
gzip
と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は、標準入力に入力を取り、標準出力に暗号化されたデータを出力するプログラムです。圧縮をサポートしていないので、最初にgzipを介して入力を渡すことができます。出力は標準出力に送られるので、あなたはそれをあなたが選んだ名前のファイルにリダイレクトしなければなりません。おそらくあなたが求めていることを行うための最も効果的な方法ではありませんが、Aespipeは多目的なツールなので、私はそれを言及する価値があると思いました。
あなたはあなたのパスワードで保護されたアーカイブを作成するために7Zipを使うことができます。次のようにコマンドライン(またはスクリプト)でパスワードを指定できます。
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7Zipは以下のようにSTDINから読み込むこともできます。
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
Zipファイルを使用することが必須である場合は、-t<type>
パラメータ(たとえば-tzip
)を使用して再生することをお勧めします。
Tar、gzip、bzip2のいずれもパスワード保護をサポートしていません。 Zipなどの圧縮形式を使用するか、GnuPGなどの他のツールで暗号化します。
で作成します。
tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg
パスワードを聞いてきます。
復号化する:
gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -