GnuPGでディレクトリを暗号化しますか?


10

を使用してディレクトリを暗号化する方法はありますgpgか?引数としてのみファイルを受け入れるようです。


ディレクトリまたはドライブ全体を暗号化する方法もありますが、それらはスコープが異なります。透過的な暗号化を提供し(ドライブをマウントするためにパスワードを入力するだけです)、GPGまたはPGPで結果を読み取ることができません。
Gilles「SO-邪悪なことをやめなさい」

回答:


11

tarファイルを暗号化してからtarballを暗号化しないのはなぜですか?


これが解決策であることがわかりました。柔軟性がなく、tarとgpgの日付に多くのリソースが必要です。答えてくれてありがとう!
gladimdim、2011年

@gladimdim:受け入れてくれてありがとう。でも、「柔軟性がない」と「リソースがたくさんある」とはどういう意味ですか?またはタイプミスはありましたか?
アレックス

「柔軟性がない」とは、tarディレクトリーを手動で作成してから、それをgpgする必要があることを意味します。私は60Gbの写真を持っていますが、それらは現在tarballされ、gpgedになっています。このプロセスを高速化するには、約2時間と4つの同時ターミナルウィンドウが必要でした。今、私は私が作成した写真をすべての新しいディレクトリにtarballとgpgします。
gladimdim、2011年

うーん、そのサイズのデータ​​にとってはかなり妥当な時間のようです。あなたはそれをはるかに速く実行することを期待しましたか?これらの写真が1つ必要な場合は何を計画しますか?
アレックス

2

--multifileはマンページでオプションを見ました:

これにより、他の特定のコマンドが変更され、複数のファイルを受け入れてコマンドラインで処理したり、STDINから読み取り、各ファイル名を別々の行に表示したりします。これにより、多くのファイルを一度に処理できます。--multi‐ファイルは現在--verify、-encrypt、および--decryptとともに使用できます。--multifile --verifyは、分離された署名では使用できないことに注意してください。

特に探しているのは--encrypt-files、マンページです。

--multifile --encryptと同じです。


1
おかげで、これはgpgが--symmetricオプションを指定した--multipleキーをサポートしていないことを除いて、うまく機能します(パスフレーズのみを使用して暗号化したい)。
gladimdim、2011年

1

例外としてマークされた回答のコメントを読みました。|(匿名パイプ)の魔法を知っておく必要があるようですが、スーパーユーザーに投稿した答えを確認すると、targpg結合して、出力を圧縮して暗号化してから出力することができます。まだかなりのシステムリソースを使用するため、manページを確認してください。niceコマンド、特定の割合のリソースのみを使い切るコマンドの機能を制限して。また、一般的にコマンドラインであなたの人生を楽にするかもしれないトピックを提案する気分である間; データを渡すためにファイル記述子と名前付きパイプを調べます。

上記の主題を理解したときにどのような魔法を実行できるかを確認したい場合は、コマンドラインでのGnuPGの自動化に関連するソリューションのTravis-CIビルドログと関連スクリプトを確認してください。

----アップデート

要求に応じて、ディレクトリを処理するための例は、前述のスクリプトの680行目にあり、より一般的な例は...

#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="your-email@host.domain"
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

... script-name.sh /path/to/dirまたはscript-name.sh /path/to/dir new-email@host.domainで実行され、ディレクトリにファイルを出力する必要が/tmpあります<current-date>_<top-dir-name>.tgz.gpg


例を書くことができますか?
Nikana Reklawyks 2017

はい
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.