在Ubuntu 20.04上使用eCryptFS加密文件和目录

在本教程中,您将学习如何在Ubuntu 20.04上使用eCryptFS加密文件和目录。 加密 是将纯文本数据,消息或信息转换为随机且无意义的数据(通常称为密文)的过程。加密的数据只能由授权方访问,而未经授权的人则不能访问。

Linux中有多种加密数据的方法,例如EncFS,用于文件系统级加密的eCryptFS,用于全盘加密的Loop-AES,DMCrypt和CipherShield。

eCryptfs是适用于Linux的POSIX兼容企业级堆栈加密文件系统。无论底层文件系统,分区类型等如何,文件系统层上的eCryptfs层都可以保护文件

在安装过程中,Ubuntu提供了使用eCryptfs加密/ home分区的选项。这将自动配置加密和挂载分区所需的所有内容。但是,如果您对此不太满意,请执行以下步骤来手动加密文件和目录。

在Ubuntu 20.04上使用eCryptFS加密文件和目录

安装eCryptFS

要使用eCryptFS,请安装必要的软件包。但是,如果在安装过程中启用了主目录加密,则应该已经安装了该实用程序。

如果该软件包尚不存在,则需要更新系统软件包缓存并安装ecryptfs。

apt update
apt install ecryptfs-utils -y

使用eCryptFS加密目录

现在安装已完成,现在该看看eCryptFS了。

要使用eCryptFS加密目录,请使用ecryptfs文件系统类型挂载有问题的目录。

假设您要加密 〜/ mydocuments, 然后;

sudo mount -t ecryptfs ~/mydocuments/ ~/mydocuments/

运行此命令时,它要求输入密码和其他几个提示。相应地回答他们。

Passphrase:    Enter your passpharase here
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:  Press Enter
Select key bytes: 
1) 16
2) 32
3) 24
Selection [16]:  Press Enter
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: n
Attempting to mount with the following options:
   ecryptfs_unlink_sigs
   ecryptfs_key_bytes=16
   ecryptfs_cipher=aes
   ecryptfs_sig=96b6fac91e0a01b8
 WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
 it looks like you have never mounted with this key 
 before. This could mean that you have typed your 
 passphrase wrong.
 Would you like to proceed with the mount (yes/no)? : yes
 Would you like to append sig [96b6fac91e0a01b8] to
 [/root/.ecryptfs/sig-cache.txt] 
 in order to avoid this warning in the future (yes/no)? : yes
 Successfully appended new sig to user sig cache file
 Mounted eCryptfs

加密目录现在已安装。运行以下命令以验证安装。

sudo mount | grep mydocuments
/home/koromicha/mydocuments on /home/koromicha/mydocuments type ecryptfs (rw,relatime,ecryptfs_sig=96b6fac91e0a01b8,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)

现在,您可以开始将敏感数据放入目录中。

例如,让我们在加密目录内创建一个包含随机数据的文件。

cat > ~/mydocuments/clients-contacts.txt << 'EOL'
ClientA: 020-000001
ClientB: 020-000002
ClientC: 020-000003
ClientD: 020-000004
EOL

只要安装了目录,就可以访问数据。

让我们卸载目录,看看是否可以访问数据。

sudo umount ~/mydocuments

现在尝试查看数据。

cat ~/mydocuments/clients-contacts.txt
P.p"3DUfw`ք[PJP5~p_CONSOLE9mxǮP|Xt߫0ak!f(BƬ 
:i>0o989<Ѥ[email protected](WZ=&Ss<g9#@e`A]L!U]s/zU.x|B$HPmTTzyrrx4%@$8!r]sI#4q1Z8&ۿGGb$7
^QUﷱIa4ɵK,tyhUUHi 0]h<S+fK2DH-mC[iO-XbKdװ@%xYs, w'
O-nt!z"ɾ6AZyƷ.؃T`ǡ0FfӲܮ%O{@[ߕ8wLRѻsr&]^ XoeA"m?SVb&/Nrgθo?&[sj!
"lL CЯ5)+H^rA2aKxf.a+}LiA̝|gSOj2y_x~Ma^p.PmPUvdjv34 c5-FhFQ½CTLB#OI+5.WXsDlbʺ
f50)> AJa7$~4V!R;udP]ޱABSyT!qg D;fY(&[email protected]"JyɬPwvJ"h}B<nS>e
)@[K~w39PK^ j~p"G'eQEK&3Ywe,Ϸ,AVjƺ!yUoX ·@:!{mQfۢ'wţap]4}% αu[0M#>S魍g9t_A0k=ۊ;
wℍGZN$V2"HI-4oIክEoK?]9sIr0J:{uTJ8D֍+ nɪ7CI&iCELYa̅ÿҞޙn)-]}C
...

这都是没有意义的。

要访问数据,您需要重新安装目录。

当提示您输入密码短语时,请在首次安装目录时使用您设置的密码。

sudo mount -t ecryptfs ~/mydocuments/ ~/mydocuments/
Passphrase: ENTER THE PASSPHRASE
Select cipher: 
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: 
Select key bytes: 
 1) 16
 2) 32
 3) 24
Selection [16]: 
Enable plaintext passthrough (y/n) [n]: 
Enable filename encryption (y/n) [n]: 
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=96b6fac91e0a01b8
Mounted eCryptfs

现在,您可以在加密目录中查看数据。

重新挂载目录的过程是如此手动,而且有点麻烦。因此,要自动执行此过程,您可以创建一个bash脚本或使用带有密码短语的USB来自动执行此过程。

请参阅我们的下一个教程,了解如何自动执行此安装过程。干杯。

这标志着本教程的结尾,说明了如何在Ubuntu 20.04上使用eCryptFS加密文件和目录。

其他教程

如何在命令行上使用VeraCrypt加密Ubuntu 18.04上的驱动器

在Ubuntu 20.04上安装和设置VeraCrypt

在Linux中使用LUKS加密驱动器

在Linux中自动挂载LUKS加密设备

Sidebar