一度に複数のファイルを暗号化する


10

特定のバージョンを保存し、暗号化されたバックアップを保持しやすくするために、プロジェクトアーカイブを作成し、それらの7zアーカイブを作成するスクリプトを書いています。

アーカイブを生成して暗号化フェーズに到達しgpgたら、可能であれば1回の呼び出しでファイルを暗号化し、ユーザーにパスフレーズを1回だけ入力させるようにします。それ以外の場合は、ユーザーのパスフレーズをメモリにキャッシュするか(私は本当にしたくない)、アーカイブするすべてのプロジェクトのパスフレーズを入力して確認する必要があります(これは悪いことです)。

複数のファイル名を渡してgpgすべてを一度に暗号化する方法はありますか?

私がこれを試した場合:

$ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z

...シェルに次のエラーが表示されます。

usage: gpg [options] --symmetric [filename]

私が達成したいことをする方法はありますか?


2
なぜ最初に7zip(おそらく)を使用して圧縮し、次にGnuPGにbzip2を使用して再度圧縮するように指示ているのですか?スペース効率の点でそれほど多くは得られていないと思いますが、かなりのCPUコストがかかると思います。
CVn

1
>複数のファイル名をgpgに渡して暗号化させる方法はありますか?>それらすべてを一度に暗号化しますか?はい、この回答を
Anchan

回答:


5
Is there a way to pass multiple filenames to gpg to have it encrypt all of
them in one go?

いいえ、ありません。

次のgpgオプションのいずれかを使用してパスフレーズを渡すことをお勧めします(後者が最も安全な選択です)。

--passphrase
--passphrase-file
--passphrase-fd

10

GnuPGはこれを直接サポートしていないため、これを行う方法は、たとえばを使用して別のレイヤーを追加することtarです。

tar c project1.7z project2.7z | gpg --cipher-algo AES256 --compression-algo BZIP2 -co projects.gpg

そして抽出するには:

gpg -d projects.gpg | tar x

あなたが残されるだろうproject1.7zproject2.7z。その後、スクリプトは中断したところから再開できます。


3

GPGを他の方法で試したい場合は、複数のファイルを暗号化するための他のバックアップ方法があります。

元のソース:http : //www.obsd.hu/docs/Unix-backup-with-aes.txt

vi ~/.bashrc

backup() {
if [[ "$1" = "" ]]; then echo 'specify full path' && exit 1; fi
CURRENTDATE="`date +%F-%Hh`"
echo 'Did you do a screenshot of the Desktop and backup all the Bookmarks of the webbrowser and backup cronjobs, etc...?'
read
echo "START: `date`"
ORIGDIR="$1"; ORIGDIRNORM="`echo $ORIGDIR | sed 's/\/$//g'`"; tar cvf - "${ORIGDIRNORM}/" 2>/dev/null | gzip -9 - 2>/dev/null | openssl aes-256-cbc -salt -out "${ORIGDIRNORM}-backup-${CURRENTDATE}.tar.gz.aes" && cksum "${ORIGDIRNORM}-backup-${CURRENTDATE}.tar.gz.aes" >> checksum.txt
echo "END: `date`"
}

decrypt() {
if [[ "$1" = "" ]]; then echo 'specify full path' && exit 1; fi
CURRENTDATE="`date +%F-%Hh`"
echo 'This will decrypt the backup in the current working directory, are you sure?'
read
echo "START: `date`"
ORIGDIR="$1"
openssl aes-256-cbc -d -salt -in "${ORIGDIR}" | tar -xz -f -
echo "END: `date`"
}

使用法:暗号化には「backup DIRECTORY」を使用し、「decrypt DIRECTORY.tar.gz.aes」を使用するだけです


1

今日はこのようなことをなんとかしてきました:

  1. ディレクトリをターゲットファイルを含むディレクトリに変更し、Bashスクリプトを実行して必要なfile_namesを見つけ、それらを私が呼び出したテキストファイルにリストしますfound.txt

  2. bpgスクリプトを実行して、gpg2に各ファイル名をループ内およびメモリ変数に読み込むように要求し、同じループ内で署名キーを使用して暗号化し、自分で読み取ることを指定した。gpg2は、パスフレーズを入力するためのポップアップを表示します。このポップアップには、セッションでパスフレーズをアクティブにしておくことを選択できる小さなチェックボックスがあります。悪い習慣ですが、ネットに接続しておらず、暗号化セッションの直後に電源を切ったとしても、それほど悪くはありません。

  3. 唯一の問題は、処理するa / nがあることでした。Yキーを指で握り、51 nosファイルを1分もかからずに暗号化しました。


スクリプトを以下に示します。

「検索」スクリプトは次のファイルですFindFilesAndListtoTextfile.sh

#! /usr/bin/bash
#Try this to list the files you want using the appropriate file identifier i.p.o "DSCN.*":

source="/home/myself/Whatever  #note no gaps on either side of the equal-to sign 
 target="/home/myself/Whatever/found.txt"
 find $source -name "*DSCN*" -type f > $target       

暗号化スクリプトは、ReadFilenameAndEncrypt.shと呼ばれていました。

#!/bin/bash
line="/home/myself/Whatever/found.txt"
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Text read from file: $line"
    gpg2 -e -u mysecretkeyID -r mysecretkeyID "$line"
  done < "$1"

これは通常のユーザーとして実行されます:

$ bash ReadFilenameAndEncrypt.sh found.txt

お役に立てれば。y / nを回避する方法を理解していません。


0

次のコマンドは、スペースを含むファイル名がない場合に機能します。

for file in $(ls | grep -v ".gpg"); do gpg -c --cipher-algo AES256 --compress-algo 1 --batch --passphrase "<password>" $file && rm -f $file; done

また、findコマンドも使用できます。

for file in $(find /home -type f | grep -v ".gpg"); do gpg -c --cipher-algo AES256 --compress-algo 1 --batch --passphrase "<password>" $file && rm -f $file; done

最後に、パスワードにファイルを使用する場合は、次を使用します。

--passphrase-file <filename>

-1

はい、簡単な方法があります:

for x in *; do 
  gpg -r (yourencrytionkey.com) -o $x.pgp -e $x
done

-1

echo "パスワードを入力してください:"

パスワードを読む

見つける。-type f -exec gpg --passphrase $ password -c {} \;

Hmmmmmm GPGはGraphicMessageBoxで各ファイルのパスワードを尋ねます。

そこで、C-ANSIでCRYBULL(私が作成した暗号化プログラム)を使用することにしました。www.labolida.comから無料でダウンロードできます。

見つける。-type f -exec crybull {} {} .cry $ password encode \;


より精巧な答えを作ってみてください。さらに、この質問はすでに回答されています。よくある質問を読んで、質問に適切に回答するための最新情報を入手してください
zuazo 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.