如何将 sshfs 命令转换为 fstab 条目?

Jér*_*nge 27 command-line fstab mount

从另一个 SO question,我知道我应该创建一个条目fstab以永久安装对虚拟机的访问。

我不是 Linux 专家。允许我从终端执行此操作的魔术命令是:

sudo sshfs -o idmap=user -o allow_other -o nonempty jverstrynge@devjverstrynge:/home/httpd /home/jverstrynge/httpd
Run Code Online (Sandbox Code Playgroud)

当我检查上述 SO 问题时,我看到一个条目如下所示:

/media/mybook/laptop_backup /export/laptop_backup none bind 0 0
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何将 CLI 命令转换为 中的条目fstab吗?

Lil*_*loX 33

您可以使用以下语法:

sshfs#USER@HOST:REMOTE_PATH LOCAL_PATH fuse defaults,allow_other 0 0
Run Code Online (Sandbox Code Playgroud)

例如

sshfs#jverstrynge@devjverstrynge:/home/httpd /home/jverstrynge/httpd fuse defaults,allow_other 0 0
Run Code Online (Sandbox Code Playgroud)

但这仅在您使用 ssh 密钥进行身份验证时才有效。

  • 如果您打算像上面的答案建议的那样使用 allow_other 挂载选项,请注意 Linux 内核有一个影响 FUSE 的未解决的安全错误。见 https://github.com/libfuse/libfuse/issues/15 (4认同)
  • 这适用于 root 的 ssh 配置。有没有办法让它使用我的用户?我希望它使用我的主机配置而不必复制它。 (2认同)

小智 6

尝试 autofs

创建auto.master

/mount /etc/auto.sshfs        uid=1000,gid=1000,--timeout=30,--ghost
Run Code Online (Sandbox Code Playgroud)

创建auto.sshfs- moviefolder

fstype=fuse,rw,allow_other,noatime,port=54321,IdentityFile=/root/.ssh/id_rsa :sshfs\#root@10.70.70.12\:/var/www/html/moviefolder
Run Code Online (Sandbox Code Playgroud)

你需要有 ssh 密钥才能工作。


小智 6

从这个来源

这适用于非 systemd,请参阅其他配置的文章(Fedora、Arch、openSuse...)

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
Run Code Online (Sandbox Code Playgroud)

systemd 发行版(Arch、Fedora、OpenSUSE...),合适的指令是:

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
Run Code Online (Sandbox Code Playgroud)