sshfs 按需安装

sshfs 按需安装

我按照说明进行操作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 的人来说。

正确的程序:

  1. 添加/etc/fstabusername@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

  2. 跑步sudo systemctl daemon-reload。这将创建一个 systemd“单元文件”。

  3. 通过运行找出哪个单元文件systemctl list-unit-files --type automount。对我来说是的mnt-remotes-hostname.automount

  4. 启用它:sudo systemctl restart mnt-remotes-hostname.automount.

  5. 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则需要使用该命令。userusers

答案3

我知道这是一篇非常旧的帖子,但我刚刚设置了一个 sshfs 并遇到了类似的问题。对我来说,解决方案是生成一个没有密码的 rsa 密钥,因为使用 systemd automount 自动挂载时,不会提示您输入身份文件密码。

相关内容