我正在寻找一个实用程序来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'
优点
就我而言,我主要使用两种方法:
tar cvf backup.tar /path/to/folder
您可以从tar命令中删除[v]开关以closures详细模式。
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密码。
zip -r -0 -e backup.zip /path/to/folder
它会要求input密码。
这样做的一个优点是:它将更好地运行在基于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。