加密的主目录不会自动挂载


10

我以某种方式设法打破了对我的加密主目录的自动挂载。

每次我通过SSH登录时,都会看到以下信息:

valorin@joshua:~$ ls -la
total 44
dr-x------ 3 valorin valorin  4096 2012-03-17 17:10 .
drwxr-xr-x 7 root    root     4096 2012-03-17 11:45 ..
lrwxrwxrwx 1 valorin valorin    56 2012-03-08 20:37 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
-rw------- 1 valorin valorin   917 2012-03-17 19:24 .bash_history
drwx------ 3 valorin valorin  4096 2012-03-16 17:58 .cache
lrwxrwxrwx 1 valorin valorin    33 2012-03-08 20:37 .ecryptfs -> /home/.ecryptfs/valorin/.ecryptfs
-rw-r--r-- 1 root    root    21954 2012-03-08 20:35 .face
lrwxrwxrwx 1 valorin valorin    32 2012-03-08 20:37 .Private -> /home/.ecryptfs/valorin/.Private
lrwxrwxrwx 1 valorin valorin    52 2012-03-08 20:37 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt
-rw------- 1 root    root      703 2012-03-17 17:10 .viminfo

有什么想法我做了什么,以及如何解决?

更新:

使用此处的方法设置了SSH密钥身份验证,事后看来,这是加密主目录无法正常工作的原因。

因此,我的新问题是,使用SSH身份验证密钥登录后,如何自动提示输入密码?


登录时是否提示您输入登录密码?syslog中是否有任何eCryptfs消息?
达斯汀·柯克兰

@DustinKirkland,请参阅问题中的我的更新。我意识到这是因为我已经设置了SSH密钥身份验证...所以没有要求输入密码。
斯蒂芬RC

啊哈,就这样;-)现在,我将在下面发布一个更好的答案。
达斯汀·柯克兰

Answers:


28

好的,因此虽然可以使用SSH公钥身份验证登录到系统而无需输入密码(即使您的主目录已加密),但无法自动安装加密的主目录。

要解决此问题,您需要在卸载的 $ HOME / .profile 的末尾添加一行:

ecryptfs-mount-private

这将确保在使用SSH公钥身份验证登录后,将提示您输入密码并装入加密的数据。如果已经安装了该命令,则该命令应该只是默默地成功。

请享用!

全面披露:我是eCryptfs的作者和维护者之一。


1
太好了,谢谢,这正是我想要的:)我也必须添加cd /home/$HOME到.profile文件中,以在解密后刷新它。
斯蒂芬RC

1
只需提一下,如果您使用zsh它,则需要~/.zprofile代替它~/.profile
Timmy O'Mahony

也许这将对其他人有所帮助ecryptfs-mount-private。甚至都不要求输入密码。事实证明它可以正常工作,并且不需要密码,因为我在进行sudo其他操作时已经输入了密码,但是/home/arthur在查看文件之前,我需要反复更改当前的工作目录。
亚瑟塔卡

谢谢@ TimmyO'Mahony!我不会一直选择使用zsh它,但是这是一个全新的安装,我还记得看到它无法保存我的.zsh历史记录…
Auspex

2

请尝试以下操作:

  1. 确保/etc/pam.d/common-session包含以下行:

     # Encrypt home
     session    optional    pam_ecryptfs.so unwrap
    
  2. 确保/etc/pam.d/common-auth包含以下行:

     auth   optional    pam_ecryptfs.so unwrap
    
  3. 确保/etc/pam.d/sshd包含以下行:

     # Standard Un*x authorization.
     @include common-account
    
     # Standard Un*x session setup and teardown.
     @include common-session
    
  4. 如果您最近更改了用户密码,请检查 /etc/pam.d/common-password

    如果不包含以下行:

     password   optional    pam_ecryptfs.so
    

    然后,您需要使用旧密码来重新配置ecryptfs。

    我的建议是使用passwd,然后将以上行添加到您的帐户,并将其更改为以前的密码,然后/etc/pam.d/common-password再将密码更改回新密码。

    或者,您可以尝试以下操作:

    ecryptfs-setup-private

    出现提示时,请确保输入与用户密码相同的密码。

  5. 如果以上方法均无效,请尝试运行ecryptfs-setup-private也许可以解决问题。

  6. 如果仍然无法正常工作,那么我没主意了,对不起。


所有的配置看起来都不错。检查我的问题的更新,我认为这是由于我已经设置了SSH密钥认证。
斯蒂芬RC

尝试改变optional,以requiredcommon-account。这个想法是pam如果没有得到密码,应该真正提示输入密码。确保保持公开会话,以免冒险将自己拒之门外。
d_inevitable 2012年

“普通帐户”是什么意思?
Peter Fleix

2

按照您在帖子中提到的这些说明进行操作,是专门为您完成的,因此您无需安装主文件夹即可通过SSH进入您的帐户。如果您撤消了之前所做的操作并将其恢复为以前的状态,那么当您使用SSH登录时,如果您的主目录尚未解密,则将被迫输入密码。(如果您的主目录由于另一个会话而已被解密,那么您的SSH密钥将非常适合无密码连接!)

否则,替代方法是ecryptfs-mount-private在使用密钥登录以手动解密主文件夹后运行。


有有办法ecryptfs-mount-private,当我登录时自动运行?
斯蒂芬RC

只需更新“这些说明”断开的链接,就像我不得不在Wayback机器 上查找的那样:stephen.rees-carter.net/thought/…在所引用文章上的其他想法:而不是将authorized_keys存储为/home/.ssh/ %u,将authorized_keys存储在/home/.ssh/%u/authorized_keys中,其中/home/.ssh/%u/由%u:%u拥有700个权限,而该文件由%u拥有600个权限。
杰里米·里昂

@StephenRC创建一个〜/ .profile,该文件在未加密的主目录中运行ecryptfs-mount-private。
杰里米·里昂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.