【问题标题】:GPG encryption and decryption of a folder using command line [closed]使用命令行对文件夹进行 GPG 加密和解密 [关闭]
【发布时间】:2016-06-05 16:45:59
【问题描述】:

gpg 命令行 (Gnupg) 的手册页包含加密和解密文件的命令。这是使用 gpg 加密/解密文件的标准命令。

gpg --encrypt --recipient xxx@mail.com ~/xxx/xxx.txt - 加密

gpg --output ~/xxx/xxx.txt --decrypt ~/xxx/xxx.gpg - 解密

但是如果我有一个包含多个文件和文件夹的文件夹,我该如何使用命令行对其进行加密?

【问题讨论】:

  • 这是您的答案:superuser.com/a/973338。顺便说一句,这个问题似乎与 stackoverflow 无关。

标签: encryption public-key-encryption gnupg


【解决方案1】:

解决方案 1:

使用 gpg-zip。

为用户 Bob 加密目录 mydocs 的内容到文件 test1:

gpg-zip --encrypt --output test1 --gpg-args  -r Bob mydocs

列出归档test1的内容:

gpg-zip --list-archive test1

这是直接来自Encrypt or sign files into an archive 的示例。如果您详细阅读该页面,它将对您有很大帮助。

解决方案 2:

把目录变成文件

如果要加密目录,则需要先将其转换为文件。运行命令:

tar czf myfiles.tar.gz mydirectory/

这将为您提供一个新文件“myfiles.tar.gz”,然后您可以对其进行加密/解密。要将 tarball 转回目录:

tar xzf myfiles.tar.gz

现在您可以像上面一样使用加密了。所以:

gpg --encrypt --recipient xxx@mail.com ~/xxx/xxx.txt

这直接取自berkeley encrypting 上的一个示例,这也是一个快速而有用的阅读。

您可以在此处查看手册页:gnu gpg man

【讨论】:

  • 与解决方案 2 一致,duplicity.nongnu.org 创建一个加密的 tar,并使用节省空间的 rsync 协议通过各种方式提供到远程位置的传输。
  • 我不得不在 gpg-args 的参数周围加上引号:--gpg-args "-r Bob"
  • gpg-zip 现已弃用,推荐使用 gpgtar。
  • 在第一个命令中使用 tar 的压缩 z 标志通常会浪费资源,因为 gpg 已经进行了一些压缩。默认为--compress-algo zip,压缩级别为6。
【解决方案2】:

gpgtar 也是另一种选择。 gpgtar 将文件加密或签名到存档中。它是一个 gpg 化的 tar,使用的格式与 PGP 的 PGP Zip 使用的格式相同。

它与 gnupg 一起安装在 MacOS 和 Linux 上。

加密目录

gpgtar --encrypt --output <out_file_name> -r <recipient> <dir_name>

解密目录

gpgtar --decrypt <out_file_name>

gpgtar man page

【讨论】:

    【解决方案3】:

    如果您不想将所有内容打包在一起并希望单独加密多个文件:

    cd 进入文件夹

    加密: $ls | gpg --multifile --encrypt 或 $ls | gpg --encrypt-files -r &lt;recipient&gt;

    解密: $ls | gpg --multifile --decrypt 或 $ls | gpg --decrypt-files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多