用户的主目录位于服务器上。当用户登录时,应使用用户提供的密码作为凭据通过客户端上的 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