Ubuntu 不知从什么时候在安装时增加了用 ecryptfs 为 Home 启用加密的支持,要说这个功能挺好的,不用担心私有的文件会泄漏。但是你可能已经发现这样的加密引发了一个问题,启用了这样的加密功能的用户,无法通过增加 ~/.ssh/authorized_keys2 公钥实现密钥认证。下面我们就来解决这个问题。
Home 加密的实现
1. 系统会创建 /home/.ecryptfs/ 文件夹,并在里面创建以用户名命名的文件夹,这个以用户名命名的文件夹里还创建了 .ecryptfs 和 .Private 两个文件夹,分别用于保存加密配置信息和加密后的数据。
2. 在用户的真实 Home(即没有挂载 ecryptfs 前的 Home )里有两个重要的符号链接文件 .ecryptfs 和 .Private 分别链接到 /home/.ecryptfs/用户名/.ecryptfs 和 /home/.ecryptfs/用户名/.Private 。
3. 当用户登录时,如果认证通过,会自动将真实 Home 里的 .ecryptfs 挂载到 真实 Home 文件夹上,即 /home/用户名/,这时用户名主目录就变成加密后的了,可以看到里面有很多的文件。
4. 当用户注销,自动卸载加密主目录。
解决办法
1. 复制密钥的公钥到 /tmp 目录待用。
2. 注销用户,转到虚拟控制台(Ctrl+Alt+Fx)。
3. 登录用户,执行命令 ecryptfs-umount-private,完成后执行 cd /home/用户名 可以看到里面的文件已经不是原来的了。
4. 执行命令 mkdir .ssh 创建一个 .ssh 文件夹,复制刚才存放在 /tmp 里的公钥文件到刚创建的 .ssh 文件夹里,命名为 authorized_keys2。
5. 执行命令 ecryptfs-mount-private 并注销用户
6. 转到图形界面登录。
注:没有图形界面,直接做 2-5。
Over!
记得那个功能8.04时候就有了,因为有个用8.04的同学反映说怎么打开home也要输入密码
我现在都没用加密
好像Ubuntu10.10开始才有装机提示是否要这个东东的!
上面讲home目录mount的时候有点乱我看了两遍:
这里不明白:
“
3. 当用户登录时,如果认证通过,会自动将真实 Home 里的 .ecryptfs 挂载到 真实 Home 文件夹上,即 /home/用户名/,这时用户名主目录就变成加密后的了,可以看到里面有很多的文件。”
前面那个真实的Home到底是指哪个啊?