您的位置:首页 > 其它

Ubuntu下使用ecryptfs加密重要文件

2012-08-06 16:31 197 查看
从前有一个摄影师,他不懂加密重要文件,也不懂修电脑,结果你懂的。由此可见对电脑上的重要文件(如公司机密、个人艳照等)进行加密储存的重要性。

ecryptfs是Linux下的企业级加密文件系统,使用十分方便,只需简单几条命令,即可实现对目录的加密。

(1) 安装

Ubuntu安装ecryptfs:

sudo apt-get install ecryptfs-utils

(2)创建加密目录并挂载

假设你加密后存储的文件目录是~/company_secret,而解密后使用的目录是~/company。先创建好这两个目录,然后把加密目录挂载到解密目录:

zhouzm@zhouzm:~$ sudo mount -t ecryptfs ~/company_secret ~/company

[sudo] password for zhouzm:(管理员密码)

Passphrase:(加密密码,一定要记住)

Select cipher:

1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (loaded)

2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)

3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)

4) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

5) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)

Selection [aes]:

Select key bytes:

1) 16

2) 32

3) 24

Selection [16]:

Enable plaintext passthrough (y/n)
:

Enable filename encryption (y/n)
:y(允许文件名加密)

Filename Encryption Key (FNEK) Signature [cbd6dc63028e5602(记住,以后会用到)]:

Attempting to mount with the following options:

ecryptfs_unlink_sigs

ecryptfs_fnek_sig=cbd6dc63028e5602

ecryptfs_key_bytes=16

ecryptfs_cipher=aes

ecryptfs_sig=cbd6dc63028e5602

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(第一次使用的密码会有这个提示,输入yes继续)

Would you like to append sig [cbd6dc63028e5602] 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

(3)文件操作

加密目录~/company_secret被解密并挂载到~/company,我们可以在~/company下进行普通文件操作:

zhouzm@zhouzm:~/company$ echo "123456" > test

zhouzm@zhouzm:~/company$ ls

test

zhouzm@zhouzm:~/company$ cat test

123456

(4) 卸载加密目录

使用命令卸载加密目录:

sudo umount ~/company

卸载后~/company为空,而 ~/company_secret则显示乱码(对应加密后的test文件):

zhouzm@zhouzm:~$ ls company

zhouzm@zhouzm:~$ ls company_secret/

ECRYPTFS_FNEK_ENCRYPTED.FWb9phlX-ctK-UTNypKqMOuHjCayuUb1dl2LDDBryfZQ7xaRV.R0dJBavE--

zhouzm@zhouzm:~$ cat company_secret/ECRYPTFS_FNEK_ENCRYPTED.FWb9phlX-ctK-UTNypKqMOuHjCayuUb1dl2LDDBryfZQ7xaRV.R0dJBavE--

R7n......(一堆乱码)

(5)快速挂载

以后每次开机后访问加密数据前都需要重新挂载,你可以使用sudo mount -t ecryptfs ~/company_secret ~/company命令来挂载,但每次都要手工输入一堆选项也挺烦人的。为了以后方便挂载,在~/.bashrc中加入别名:

alias mount_company="sudo mount -t ecryptfs $HOME/company_secret $HOME/company -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,ecryptfs_fnek_sig=cbd6dc63028e5602(需从前面记录)"

以后每次使用前只需要执行mount_company即可:

zhouzm@zhouzm:~$ mount_company

[sudo] password for zhouzm:(管理员密码)

Passphrase:(加密密码)

Attempting to mount with the following options:

ecryptfs_unlink_sigs

ecryptfs_fnek_sig=cbd6dc63028e5602

ecryptfs_key_bytes=16

ecryptfs_cipher=aes

ecryptfs_sig=cbd6dc63028e5602

Mounted eCryptfs

zhouzm@zhouzm:~$ cat company/test

123456

(6) 重装系统或移动数据

你只需要记住加密密码和ecryptfs_fnek_sig参数,则即使你要重装系统或移动数据,也可以用同样的命令对数据进行解密并挂载。

(7) 参考资料

Ecryptfs企业级加密文件系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: