我按照说明进行操作sshfs“按需”安装,但它不起作用。
我将此添加到/etc/fstab
:
username@hostname:/ /mnt/remotes/hostname fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0
然后我跑了sudo mount -a
,什么也没做。我也尝试过systemctl daemon-reload && systemctl restart proc-sys-fs-binfmt_misc.automount
。
所以我遵循故障排除提示,并用它代替:
username@hostname:/ /mnt/remotes/hostname fuse.sshfs ssh_command=ssh\040-vv,sshfs_debug,debug,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0
然后就跑了sudo mount -av
。在一个单独的终端中,我可以访问该安装点。
所以 1) ssh 和 sftp 正在工作,2) sshfs 正在工作,3) 权限很好。
所以只有点播部分不起作用 - 我做错了什么?
答案1
这些说明令人困惑,尤其是对于不了解 systemd 的人来说。
正确的程序:
添加
/etc/fstab
:username@hostname:/ /mnt/remotes/hostname fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/stanley/.ssh/my_rsa_key,allow_other,reconnect 0 0
跑步
sudo systemctl daemon-reload
。这将创建一个 systemd“单元文件”。通过运行找出哪个单元文件
systemctl list-unit-files --type automount
。对我来说是的mnt-remotes-hostname.automount
。启用它:
sudo systemctl restart mnt-remotes-hostname.automount
.cd /mnt/remotes/hostname
或者ls /mnt/remotes/hostname
它会自动创建 sftp 连接!
这可行,但我还不确定:
- 有人说
allow_other
存在安全风险,我需要调查一下 - 我不知道如何指定何时应自动卸载挂载(空闲时间有多少秒等)
如果有人能阐明这一点,请这样做。
更新
根据@sourcejedis的回答,停止安装必须按以下顺序完成:systemctl stop whatever.mount && systemctl stop whatever.automount
并且不应使用umount mounpoint
!
答案2
说明说:
注意:编辑 /etc/fstab 后,(重新)启动所需的服务: systemctl daemon-reload && systemctl restart
<target>
可以通过运行 systemctl list-unit-files --type automount 找到
你有个问题 :-(。
由 systemd 实现的挂载选项(例如x-systemd.*
)不是由该mount
命令实现的。
但是,如果您是非特权用户(没有 root/sudo),并且想要安装 fstab 条目(已标记为允许使用或安装选项),mount
则需要使用该命令。user
users
答案3
我知道这是一篇非常旧的帖子,但我刚刚设置了一个 sshfs 并遇到了类似的问题。对我来说,解决方案是生成一个没有密码的 rsa 密钥,因为使用 systemd automount 自动挂载时,不会提示您输入身份文件密码。