一次加密多个文件

Naf*_*Kay 12 gpg

我正在编写一个脚本来创建项目档案,然后创建它们的 7z 档案,以便我更轻松地保存特定版本并保留加密备份。

在我生成档案并进入加密阶段后,gpg如果可能的话,我想通过一次调用来加密文件,以便用户只输入一次密码。否则,我们要么必须将用户的密码缓存在内存中(我真的不想这样做),要么让他们输入并确认每个存档项目的密码(这更糟)。

有没有办法将多个文件名传递gpg给它一次加密所有文件名?

如果我试试这个:

$ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z
Run Code Online (Sandbox Code Playgroud)

...我在 shell 中看到以下错误:

usage: gpg [options] --symmetric [filename]
Run Code Online (Sandbox Code Playgroud)

有没有办法做我想要完成的事情?

bah*_*mat 11

由于 GnuPG 不直接支持这一点,所以这样做的方法是添加另一个层,例如使用tar.

tar c project1.7z project2.7z | gpg --cipher-algo AES256 --compression-algo BZIP2 -co projects.gpg
Run Code Online (Sandbox Code Playgroud)

并提取:

gpg -d projects.gpg | tar x
Run Code Online (Sandbox Code Playgroud)

你会留下project1.7zproject2.7z。然后您的脚本可以从您离开的地方开始。


Joa*_*ner 6

当前 gpg 有一个选项:

gpg --encrypt-files --recipient me@example.com *.txt
Run Code Online (Sandbox Code Playgroud)

.txt.asc为每个文件生成一个文件.txt

参考:


rsa*_*saw 5

Is there a way to pass multiple filenames to gpg to have it encrypt all of
them in one go?
Run Code Online (Sandbox Code Playgroud)

不,那里没有。

您可能希望使用以下 gpg 选项之一传递密码(后者将是最安全的选择):

--passphrase
--passphrase-file
--passphrase-fd
Run Code Online (Sandbox Code Playgroud)