什么是一个很好的解决scheme来encryptionunix中的一些文件?

我正在寻找一个实用程序来encryptionLinux中的某些目录。 我没有寻找任何完整的磁盘encryption服务,只是为了在云中存储文件的目的而encryption一些目录。 一旦检索它们,我就不得不解密它们才能被访问。 寻找这样的几个目录(几百GB的大小)。 有任何想法吗? 最好是基于CLI的。

    我只用GnuPG来完成这个任务。 文件夹首先打包成TAR-GZ存档:

    tar czf files.tar.gz /path/to/my/files 

    如果尚未完成,则需要首先创build一个GPG私钥/公钥对:

     gpg --gen-key 

    按照说明。 第一次testing的默认值应该是足够的。 这样的事情会出现:

     gpg(GnuPG)2.0.18;  Copyright(C)2011 Free Software Foundation,Inc.
    这是免费软件:您可以自由更改和重新分配它。
    没有担保,在法律允许的范围内。
    
    请select你想要的密钥types:
        (1)RSA和RSA(默认)
        (2)DSA和Elgamal
        (3)DSA(仅限符号)
        (4)RSA(仅限符号)
    您的select?  1
     RSA密钥的长度可能在1024到4096之间。
    你想要什么密码?  (2048)4096
    请求的密钥大小是4096位
    请指定密钥的有效期限。
              0 =密钥不会过期
             =密钥在n天内过期
           w =密钥在n周内过期
           m =密钥在n个月内过期
           y =密钥在n年内到期
    密钥是有效的?  (0)
    密钥根本不会过期
    它是否正确?  (y / N)y
    
     GnuPG需要构build一个用户标识来识别您的密钥。
    
    真实姓名:文件encryption密钥
    电子邮件地址:[email protected]
    评论:文件encryption密钥
    你select了这个USER-ID:
         “文件encryption密钥(File Encryption Key)”
    
     (N)ame,(C)omment,(E)mail或(O)kay /(Q)uit?  Ø
    

    您将被要求input密钥的密码。 强烈build议使用强大的。 无论如何都不需要encryption文件,所以不要担心以后的批量使用。

    如果一切都完成,这样的事情会出现在你的屏幕上:

    我们需要生成大量的随机字节。 执行是一个好主意
    一些其他的动作(在键盘上键入,移动鼠标,利用
    磁盘)在黄金时代; 这给出了随机数
    发电机获得足够的熵的一个更好的机会。
    我们需要生成大量的随机字节。 执行是一个好主意
    一些其他的动作(键盘上的types,移动鼠标,利用
    磁盘)在黄金时代; 这给出了随机数
    发电机获得足够的熵的一个更好的机会。
     gpg:密钥FE53C811标记为最终可信
    公开和密钥创build和签名。
    
     gpg:检查trustdb
     gpg:需要3个边际需求,需要1个完整的PGP信任模型
     gpg:深度:0有效:1有符号:0信任:0-,0q,0n,0m,0f,1u
     pub ***** / ******** 2013-03-19
          重点指纹= **** **** **** **** **** **** **** **** **** ****
     uid文件encryption密钥(File Encryption Key) 
     sub ***** / ******** 2013-03-19
    

    现在,您可能需要导出公钥文件以将其导入到其他计算机上:

     gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key' 

    File Encryption Key是我在密钥生成过程中input的名称。

    现在我在新创build的存档上使用GnuPG:

     gpg --encrypt --recipient 'File Encryption Key' files.tar.gz 

    您现在有一个encryption的files.tar.gz.gpg文件。

    您可以使用以下命令对其进行解密(您将被要求input密码):

     gpg --output files.tar.gz --decrypt files.tar.gz.gpg 

    这就是整个魔法。

    确保你备份你的钥匙! 永远不要忘记你的密码! 如果没有备份或忘记,你有千兆字节的数据垃圾!

    用这个命令备份你的私钥:

     gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key' 

    优点

    • 没有一个encryption机需要知道有关encryption的敏感信息 – encryption是用公钥完成的。 (您可以在本地工作站上创build密钥对,只将公钥传输到您的服务器)
    • 脚本文件或作业中不会出现密码
    • 你可以有任何你想要的系统上的encryption器
    • 如果你保密你的私钥和密码,一切都很好,很难妥协
    • 您可以使用特定的PGP / GPG实现在Unix,Windows和Linux平台上使用私钥进行解密
    • 不需要encryption和解密系统的特殊权限,不需要安装,没有容器,没有特殊的文件系统

    就我而言,我主要使用两种方法:

    第一种方法:tar和openssl

    Tar目录

     tar cvf backup.tar /path/to/folder 

    您可以从tar命令中删除[v]开关以closures详细模式。

    encryption

     openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword 

    您可以将aes-128-cbc更改为openssl支持的其他密码方法(openssl –help)。

    解码

     openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar 

    它会要求input密码。

    第二种方法:encryptionzip

     zip -r -0 -e backup.zip /path/to/folder 

    它会要求input密码。

    • -r表示recursion(整个文件夹树)
    • -0表示仅存储(不压缩,更快)
    • -e表示encryption存档

    这样做的一个优点是:它将更好地运行在基于Windows的系统上。

    如果您不想使用公钥/私钥对来encryption文件,而只是使用对称encryption而不使用密码短语,请使用以下命令:

     gpg --symmetric --cipher-algo aes256 files.tar.gz 

    您将被要求input您的密码短语。 之后,创build一个名为files.tar.gz.gpg的encryption文件。

    解密使用该命令

     gpg --decrypt files.tar.gz.gpg > files.tar.gz 

    你可以使用truecrypt非常简单和不错的解决scheme。 它包仅供控制台使用。 学习和使用非常简单。 http://www.truecrypt.org

    为了这个目的,我会build议FUSEencryption(比如encfs ) – 对于较小的数据我会使用gpg。

    这是fs在用户空间实施,所以你不需要任何特殊的权限。

    有一些Linux文件系统用于数据encryption的目的。 你有没有想过LUX例如?

    一个非常简单的方法来encryption一个文件是:

     gpg -c filename.ext 

    你会被要求密码两次,gpg将创buildfilename.ext.gpg 。 将encryptionfile upload到您的云服务。 要恢复文件使用:

     gpg filename.ext.gpg 

    这将重新创buildfilename.ext 。 请注意, 未encryption的文件不安全,相关数据即使删除后也会保留在存储介质上。 只有gpg容器是安全的。 在文件级别上, EncFS是基于云端encryption的更实用的替代scheme。