我正在编写一个脚本来创建项目档案,然后创建它们的 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.7z
和project2.7z
。然后您的脚本可以从您离开的地方开始。
当前 gpg 有一个选项:
gpg --encrypt-files --recipient me@example.com *.txt
Run Code Online (Sandbox Code Playgroud)
.txt.asc
为每个文件生成一个文件.txt
。
参考:
man gpg
选项--verify-files
, --encrypt-files
,--decrypt-files
和--multifile
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)
归档时间: |
|
查看次数: |
24269 次 |
最近记录: |