如何压缩和加密整个目录(var/log)?

如何压缩和加密整个目录(var/log)?

如何压缩并加密整个目录(var/log)?

我的尝试:

#!/bin/bash
...
tar -zcvf |bzip2|openssl smime -encrypt \
 -aes256 -binary -outform DEM \
 -out ${backup_dir}${backup_name} \
 "${backup_public_key}" -f "/var/log"

答案1

这是一个很大的话题。我建议你先阅读这个stackoverflow回答了为什么使用gpg而不是使用openssl然后关注按照以下步骤操作即可

一般来说,一旦您在 GPG 中生成了密钥,就可以通过以下方式完成:

tar -cz /path/to/a/folder | gpg --encrypt --recipient "KeyName" \
                                --output compressed_folder.tar.gz.gpg

请注意,GPG 默认也会压缩,因此tar无需使用该z选项。您应该可以更快地获得加密文件,但在某些情况下tar,压缩算法会更好。

根据用例,您可能还会对对称加密感兴趣,而不是第二个链接中描述的非对称加密。它不需要生成私钥和公钥。如果是这样,则--symmetric改为使用:

gpg --output doc.gpg --symmetric doc

然后系统会要求你输入密码。有关更详细的说明,请参阅官方手册

答案2

您可以使用管道进行tar包装和压缩,ccrypt 安装 ccrypt用于加密数据:

tar czp /var/log | ccrypt >logs.tgz.cpt

tar打包数据并通过 进行过滤gzip,然后将其传送到 ,ccrypt要求输入密码并(默认情况下)执行加密。最后,数据流重定向到logs.tgz.cptcpt后缀代表使用 加密的文件ccrypt,当您使用以下方式解密文件时,此后缀将被删除:

ccrypt -d logs.tgz.cpt

您还可以通过密钥文件提供密码-k /path/to/keyfileccrypt然后读取该文件的第一行并将其用作密码。

ccrypt 基于 Rijndael 分组密码,该密码的一个版本也被美国政府选为高级加密标准(AES,见http://www.nist.gov/aes)人们认为这种密码可以提供非常强的加密安全性。

进一步阅读

相关内容