通过 sshfs 和 pam_mount 的主目录

通过 sshfs 和 pam_mount 的主目录

用户的主目录位于服务器上。当用户登录时,应使用用户提供的密码作为凭据通过客户端上的 sshfs 挂载这些目录。系统pam_mount为此提供了服务。应该如何配置?

答案1

/etc/security/pam_mount.conf.xml这些说明已在 Debian 10 上测试过。在客户端上添加以下内容:

<volume fstype="fuse"
path="sshfs#%(USER)@XXX:/home/%(USER)"
mountpoint="/home/%(USER)"
options="nosuid,nodev,noatime,reconnect,nonempty,allow_other,default_permissions,password_stdin"
ssh="0" noroot="0" />

替换XXX为服务器的主机名。

ssh="0"与选项 配合使用password_stdin。否则,虽然使用了包装器fd0ssh,但不起作用。

noroot="0"导致挂载以 root 身份执行,而不是以用户身份执行。这些选项allow_other,default_permissions使挂载的文件系统与客户端上的其他文件系统融合在一起。如果挂载以用户身份执行,我们可能会遇到文件权限问题,这可能会导致登录失败(无法写入 Xorg 日志)。

nonempty即使挂载点不是空目录,也会使挂载发生。您的设置可能不需要此选项。

reconnect在这种情况下看起来是一个合理的选择。

nosuid,nodev,noatime是为了安全和性能;根据您的需要进行调整。

为了解决 sddm 登录管理器(主要用于 KDE)中的一个错误,请添加一个排除用户的选项sddm,例如uid="10000-60000也可以看看

在撰写本文时,还有另一个错误让 sshfs 用户的日子不好过。这个问题 5 年前就有报道了。我的解决方法是完全禁用 GNOME 密钥环,方法是:

dpkg-divert --divert /usr/bin/gnome-keyring-daemon.bak --rename /usr/bin/gnome-keyring-daemon

相关内容