压缩、加密并将目录上传到 Linux 中的 FTP 服务器

压缩、加密并将目录上传到 Linux 中的 FTP 服务器

我想要完成一些相当简单的事情(至少看起来是这样):

  1. 压缩目录
  2. 加密压缩文件
  3. 通过 FTP 上传压缩和加密的文件

我也想在 Linux 服务器上以自动化方式完成此操作。

在这种情况下,TrueCrypt 不是一个真正的选择,因为它似乎无法压缩单个文件。相反,您必须创建一个卷,然后挂载并将文件移动到其中。

这个问题回答如何上传,我知道如何压缩目录。只是加密给我带来了问题。

答案1

我用过bcrypt很高兴能用上这个。实际上,我正在使用gpg现在。(刚刚检查过,已经我已经很久没有自动化过这个过程了。我不记得为什么我改变了,但我思考可能是因为我觉得gpg编写脚本更容易。)我的命令行如下所示:

gpg -r RECIP --output OUTPUT_FILE_NAME --encrypt INPUT_FILE_NAME

...在哪里

  • RECIP是我想要使用的密钥的名称(-r代表“收件人”;gpg最初主要用作加密电子邮件的手段;不要让这困扰您,它是通用的)。
  • OUTPUT_FILE_NAME是输出(加密)文件
  • INPUT_FILE_NAME是输入文件(明文)文件

答案2

您是否有什么特别的理由必须使用 FTP?如果没有,那么 SCP 将是更好的选择。首先,因为它使用加密通道发送文件(Google StreetView 汽车无需记录明文密码 :-),其次,因为它可以使用私钥身份验证,第三,因为它确实用于复制。

无论如何,tar这是从目录中创建单个文件的标准方法,并且交换机-z将使用 GZIP 压缩。

tar -zcvf OUTFILE.tgz DIRECTORY

然后你需要加密它。我使用ccrypt,但还有其他选择。也许有我不知道的不使用它的理由。

ccrypt -k KEYFILE OUTFILE.tgz

最后,将其复制到目标服务器。我假设您的主目录下有一个“Transfer”目录,并且已设置私钥身份验证。

scp OUTFILE.tgz.cpt YOURHOST:Transfer

如果确实需要 FTP,您可以使用curl它进行传输。我自己从来没有这样做过(也没有 FTP 服务器可以尝试),但快速阅读手册页表明以下内容:

curl --upload-file OUTFILE.tgz.cpt -u USER:PASSWORD ftp:://YOURHOST/HOSTPATH

相关内容