在 Ubuntu 20.04 上自动挂载 SSHFS

在 Ubuntu 20.04 上自动挂载 SSHFS

看起来所有“自动挂载 SSHFS”都已过时,并且不再在当今的桌面上工作。

如果我有一张 microSD 卡,通过 RPI 上的 SFTP 共享,我如何将其自动挂载到例如 Ubuntu 20.04 桌面上?

尝试与前:

sshfs#[email protected]:/stuff/ /media/user/stuff/  fuse.sshfs noauto,x-systemd.automount,users,idmap=user,IdentityFile=/home/user/.ssh/id_rsa,allow_other,reconnect,port=22 0 0

但它不起作用..到目前为止唯一有效的是:

sshfs#[email protected]:/stuff/ /media/user/stuff/ fuse defaults,auto,allow_other,noatime,port=22,IdentityFile=/home/user/.ssh/id_rsa,user 0 0

但这需要我执行“mount -a”..这不是很自动:)

问题:作为普通用户,如何按需挂载 SSHFS 共享?因此,如果我在该目录中(例如:终端中的 GNOME os,ls 或 cd 或“cp from tothatshare”),则无需密码即可使用 SSH 密钥登录。

非常感谢。

答案1

如何仅按需挂载 SSHFS 共享?

通常,您可以使用 systemd(自动)挂载来执行此操作。

您只需将一个文件添加到 /etc/systemd/system 中,其中包含

[Unit]
Description=SSHFS mount
Requires=network-online.target

[Mount]
What=sshfs#[email protected]:/stuff/
Where=/media/user/stuff/
Type=sshfs
Options=allow_other,noatime,port=22,IdentityFile=/home/user/.ssh/id_rsa

文件必须被命名media-user-stuff.mount(即取出 中的内容Where=,删除根 /,然后将所有 / 替换为 - 并以 .mount 结尾)

这是一个 systemd 挂载文件。你现在使用 systemd 挂载该目录(但您不希望这样做,所以我们不要这样做)。

相反,我们还编写一个 systemd.automount 文件:这将使 systemd 在Where=.当第一次尝试访问它时,就会发生实际的安装。

所以,/etc/systemd/system/media-user-stuff.automount

[Unit]
Description=user media automount

[Automount]
Where=/media/user/stuff

[Install]
WantedBy=multi-user.target

您最终使用 启用了它systemctl enable --now media-user-stuff.automount。因此,它将在每次系统启动时“预安装”。

作为普通用户, 我怎么能够 …

一点也不;自动挂载逻辑依赖于能够监视对目录的访问,并且需要 root 权限。据我所知,目前还没有内置消除这种需求的包装器。


关于 SSHFS 的说法:老实说,可能有更好的网络文件系统; SSHfs 真的很喜欢挂起并且在连接丢失时无法恢复,它在很多方面都不是“干净的”,你可能会在没有注意到的情况下丢失数据(发生在我身上!)实际上非常慢

也许使用不同的网络文件系统。现在设置 Samba 并不难。

相关内容