原创:总算初步解决ecryptfs加密主目录的问题了

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
fpoint
帖子: 112
注册时间: 2008-12-29 21:16
联系:

原创:总算初步解决ecryptfs加密主目录的问题了

#1

帖子 fpoint » 2009-11-05 20:18

从ubuntu9.10开始,全新安装时多了一个登入时需要密码并加密我的主目录的选项,简单的说就是把整个主目录都加密了,如果电脑丢失或者重新安装系统时,没有关键密码此主目录则永远无法恢复,数据则可保无忧。不管有没有用,用各种方法试验恢复主目录时总是遇到各种各样的问题,其中最好的情况是目录恢复了,但其中的文件名称是乱码,根本无法解读,在网上找了很久的资料,最后才发现原因,不敢独享,贴在此处:

如果安装时选择了加密主目录,登入系统后要做的第一件事情就是保存好密钥,在终端中输入:
ecryptfs-unwrap-passphrase
则可以得到一串长长的字符串,保存在安全的地方,这是关键;
假设准备重新安装系统,有两种方式可保数据无忧,第一种是在安装前把已经被加密的主目录中需要保存的数据文件拷贝出来——不准打人、扔鸡蛋;第二种则是这篇文章要讲的东西。
仔细检查安装的系统,你会发现,被加密的整个主目录实际上只是一个被挂载的空目录,里面只有四个文件,真正的文件实际上存放在 /home/.ecryptfs/你的主目录名/.Private中,是加密存放的,所以重新安装系统时,这个目录一定不能被删除,否则神仙也救不了你。

假设已经重新安装了系统,则进行如下操作:
确认先前的/home/.ecryptfs/被加密的目录名/.Private 里面的文件在不在,如果不在,不用继续了
如果先前忘记保存的密钥串或者密钥串丢了,检查
/home/.ecryptfs/被加密的目录名/.ecryptfs/wrapped-passphrase文件在不在,如果不在,也不用继续了,如果在,
安装ecryptfs:
sudo aptutide install ecryptfs-utils
如果已经安装,此步略。
在终端中输入:
sudo ecryptfs-unwrap-passphrase wrapped-passphrase 不用我说要在哪个目录中运行了吧,就是你以前的那个旧的wrapped-passphrase所在的目录,当然你拷贝出来也随便你
Passphrase: 输入以前主目录被加密的用户密码
得到密钥串,保存起来

在现在的主目录下新建一个目录restore
在终端输入:
sudo ecryptfs-add-passphrase --fnek 注:–fnek 有两个 - 一定要sudo
Passphrase:输入先前保存在安全位置的那一长串字符串
Inserted auth tok with sig [6ceb75c6208b3c78] into the user session keyring
Inserted auth tok with sig [01bda2c2fc25d863] into the user session keyring
记住方括号中的两串字符串,后面要用到。其中第二串是解密文件名用的
注:这一步相当重要,很多时候就是因为这一步没有做,没有将先前保存的密钥导入密钥环中(我是这么理解的),结果要不恢复出错,要不恢复出来的文件名称、目录名称全部是看不懂的东东。在终端输入:
sudo mount -t ecryptfs /home/.ecryptfs/以前那个被加密主目录名称/.Private ~/restore
Passphrase:同样输入先前保存的字符串
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
6) 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) [n]:直接回车
Enable filename encryption (y/n) [n]: y 这一步很关键,因为加密主目录时文件名称是默认加密的,一定要回答y
Filname Encryption Key (FNEK) Signature [6ceb75c6208b3c78]: 01bda2c2fc25d863 将前面提到的那两串字符串中的第二串输入
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=01bda2c2fc25d863
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=6ceb75c6208b3c78
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 [86a764759a1f7625] to
[/root/.ecryptfs/sig-cache.txt]
in order to avoid this warning in the future (yes/no)? no 是否将此次挂载信息记录下来以免下次报警?
Not adding sig to user sig cache file; continuing with mount.

到此,去访问主目录中的restore文件夹,应该不会出现问题了。把要恢复的文件拷贝出来,不然下次开机想再进去又要来一次。如果你没有在最开始那一步进行
ecryptfs-add-passphrase –fnek
的操作的话,应该会出现以下的出错信息:
Error mounting eCryptfs: [-2] No such file or directory
目录挂载失败。莫名其妙。找不到文件?就是这个问题困扰了我很长一段时间,总是挂载失败

这是比较简单的方式,对于ecryptfs复杂运用,欢迎和我讨论。500years@lizhenyu.com
另:命令之间的空格请多注意,最好直接贴到终端中去

http://blog.lizhenyu.com/restore-encryp ... yptfs.html
上次由 fpoint 在 2012-03-26 12:06,总共编辑 3 次。
hogsonik
帖子: 147
注册时间: 2007-09-02 17:46

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#2

帖子 hogsonik » 2009-11-07 16:09

好东西谢谢楼主罗
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#3

帖子 highwind » 2009-11-07 18:22

厉害呀。 :em09
头像
kissdb
帖子: 578
注册时间: 2008-03-28 10:18
来自: 淮安and徐州

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#4

帖子 kissdb » 2009-11-08 12:01

从8.04升级安装到9.10的怎么再选择加密主目录
今天下午和一群女的聊天,突然有人说我不是男人。
我火了,我说,你说我不是,我掏出来给你看。
女生都笑了,有一个最牛,说,你掏啊……
于是我就把身份证掏出来了。
头像
fpoint
帖子: 112
注册时间: 2008-12-29 21:16
联系:

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#5

帖子 fpoint » 2009-11-08 16:52

kissdb 写了:从8.04升级安装到9.10的怎么再选择加密主目录
从旧版本升级到新版本需要加密主目录的,情况类似于新安装时没有选择加密主目录,相信楼上也认同这一点。我们可以进行加密主目录的操作,不过相对比较复杂,有一个简单的方法可以做到:
删除原用户,再新建一次,这次使用主目录加密新建用户:

sudo adduser -encrypt-home username
这样就可以了,新建的用户是主目录加密的。新建后注意事项请看一楼。 :em11
头像
kissdb
帖子: 578
注册时间: 2008-03-28 10:18
来自: 淮安and徐州

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#6

帖子 kissdb » 2009-11-09 9:28

fpoint 写了:
kissdb 写了:从8.04升级安装到9.10的怎么再选择加密主目录
从旧版本升级到新版本需要加密主目录的,情况类似于新安装时没有选择加密主目录,相信楼上也认同这一点。我们可以进行加密主目录的操作,不过相对比较复杂,有一个简单的方法可以做到:
删除原用户,再新建一次,这次使用主目录加密新建用户:

sudo adduser -encrypt-home username
这样就可以了,新建的用户是主目录加密的。新建后注意事项请看一楼。 :em11
不错,这样就可以了
hogsonik
帖子: 147
注册时间: 2007-09-02 17:46

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#7

帖子 hogsonik » 2009-11-09 21:30

装机时没有采用加密主目录,原因在于担心加密主目录会拖慢开机速度
不知到楼主在使用这么久后,有没有这样的感觉呢 
躺在桌子上
帖子: 406
注册时间: 2008-10-27 22:28

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#8

帖子 躺在桌子上 » 2009-11-09 21:36

幸好我当时没选加密主目录,否则看起来还很麻烦呢!!

PS:俺不是冠希哥,俺不怕修电脑!
头像
fpoint
帖子: 112
注册时间: 2008-12-29 21:16
联系:

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#9

帖子 fpoint » 2009-11-09 21:37

hogsonik 写了:装机时没有采用加密主目录,原因在于担心加密主目录会拖慢开机速度
不知到楼主在使用这么久后,有没有这样的感觉呢 
这就要谈到ecryptfs加密系统的缺点了,有消息称,此加密系统在读的方面损失不大,不过在写的方面,将近29%的效率将损失。还有,对于喜欢重新安装系统来做测试的玩家而言,也是不建议使用此种加密系统的。因为在不加密的系统中,普通的一个剪切、粘贴操作是几乎不需要什么时间的,不论内容有多大,只要在同一个分区,不过是改变分区表的结构的指向而已,而对于加密系统,将已经加密的文件剪切然后粘贴到另一个加密目录或者未加密目录,等于复制然后删除,所需要的时间是一样的。对于一般使用者而言,此加密系统的安全性相对于所谓的开机速度而言,肯定是幣大于利的。加密是用于数据安全的,不是用来玩的,9楼的朋友这个问题其实不应该问。别说没多少影响,就算影响再大,真是为了数据安全而加密,这点损耗又算得了什么呢?

最后,我并没有使用加密主目录的方式来使用这个系统,只是加密了应该加密的目录。留了一个加密了主目录的用户用来做测试。至今仍然没有搞定自动安全挂载已经加密的指定目录。 :em06
上次由 fpoint 在 2009-11-09 21:40,总共编辑 1 次。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#10

帖子 wangdu2002 » 2009-11-09 21:38

没有加密习惯的路过学习,顶楼主的钻研和共享精神。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
新手
帖子: 461
注册时间: 2007-01-22 23:23
来自: 42 39'18.85"N,94 10'00.80"E

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#11

帖子 新手 » 2009-11-09 21:54

ecryptfs能否做到加密一个文件夹而不是整个系统,访问时需要输入密码?
头像
fpoint
帖子: 112
注册时间: 2008-12-29 21:16
联系:

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#12

帖子 fpoint » 2009-11-09 21:58

没有问题。如果只是加密一个文件,不如用gpg,ubuntu自己就带了。
ecryptfs加密文件简单来讲是用挂载的方式进行的。没有被正确挂载时,文件和文件名都可以是乱码,使用正确的密码和参数挂载后才可以恢复正常。也可以做到不加密文件名,只加密文件内容。如果不使用正确的密钥和方式来挂载,虽然也可以通过,不过文件都是不可读的。可以让偷你硬盘的人不知所措。具体可以上其官网看看。目前为止,这是我在linux上所用过的比较灵活的一种加密系统。你甚至可以将加密了的文件拷贝到另一个linux系统中再解密。
头像
xxk842633
帖子: 178
注册时间: 2007-08-23 16:25

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#13

帖子 xxk842633 » 2009-11-10 21:41

如果楼主早点发布这篇文章多好。。。。。。。可惜了。。。。真不是玩的。。
头像
xxk842633
帖子: 178
注册时间: 2007-08-23 16:25

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#14

帖子 xxk842633 » 2009-11-14 11:43

问楼主一个问题,我安装时选择了加密了我的用户文件夹,现在我向解除加密了。。因为不想把整个用户文件都加密,现在想改成只加密其中某一个文件夹,不知道怎么样才可以达成目的?
头像
xxk842633
帖子: 178
注册时间: 2007-08-23 16:25

Re: 原创:总算初步解决ecryptfs加密主目录的问题了

#15

帖子 xxk842633 » 2009-11-14 11:43

fpoint, 问楼主一个问题,我安装时选择了加密了我的用户文件夹,现在我向解除加密了。。因为不想把整个用户文件都加密,现在想改成只加密其中某一个文件夹,不知道怎么样才可以达成目的?
回复