尽管 /etc/fstab 配置正确,sshfs 仍不会在启动时自动挂载

尽管 /etc/fstab 配置正确,sshfs 仍不会在启动时自动挂载

设置一些 Ubuntu(13.04)工作站,我正在尝试安装远程文件系统(通过 ssh)。

当前配置

  • 我创建了用户某些用户并将其添加到保险丝团体

  • 我的文件系统条目内容如下:

    sshfs#[email protected]:/remote_dir  /media/remote_dir/   fuse    auto,_netdev,port=22,user,allow_other,noatime,follow_symlinks,IdentityFile=/home/someuser/.ssh/id_rsa,reconnect     0       0
    

据我了解:

  • 汽车:明确要求在启动时挂载远程文件系统
  • _netdev:等待接口启动后再尝试挂载
  • 用户:允许任何用户请求挂载此特定的远程位置(从启动时自动挂载的 root 用户的角度来看,这是无用的)
  • 允许其他:将允许任何用户(在 fuse 组中?)访问已挂载的 fs
  • 身份文件:指向与添加的公钥配对的私钥/home/someuser/.ssh/authorized_key远程机器的。
  • 重新连接:不确定...如果连接丢失是否会尝试重新连接?

问题

  • 在启动时,我使用某些用户,启动终端,然后/媒体/remote_dir是空的。

  • 但是从同一个用户(或根用户)来看,我只需输入以下命令即可挂载它:

    mount sshfs#[email protected]:/remote_dir
    

    如果我点击远程目录在文件浏览器中。

关于可能缺失什么有任何线索吗?

答案1

从 Oneiric(自动挂载运行良好)升级到 Precise 后,我遇到了完全相同的问题。

为我解决问题的方法是添加延迟连接选项。此外,自从 Oneiric 时代以来,我就一直在使用选项“workaround=rename”。不确定今天是否仍然需要它,但至少它似乎没有坏处。

我的完整 /etc/fstab 行是:

sshfs#user@host:/remote/dir /local/dir fuse delay_connect,idmap=user,uid=1000,gid=1000,umask=0,allow_other,_netdev,workaround=rename 0 0

您显然需要根据您自己的环境调整用户/组 ID。

答案2

另外,为了补充所有先前的评论,

  1. 确保允许非 root 用户指定allow_other挂载选项/etc/fuse.conf

  2. 确保在 root 身份下手动使用每个 sshfs 挂载至少一次,以便将主机的签名添加到文件中~/.ssh/known_hosts

    sshfs [user]@[host]:[remote_path] [local_path] -o allow_other,IdentityFile=[path_to_id_rsa]
    

答案3

有同样的问题,我认为你需要将 auto 改为 noauto。它不应该在启动时安装,而应该在 eth 启动时安装

答案4

如果您要从权威 DNS 服务器安装它/etc/fstab,并且远程 SFTP 服务器的主机名由此 DNS 服务器提供,那么您肯定无法连接,因为主机名尚未解析。要么 DNS 服务器必须在尝试安装时运行,要么您必须找到其他方法来获取远程服务器的 IP 地址。

如果是这种情况,您可以选择以下任一解决方案:

  • 添加该delay_connect选项,以便允许启动顺序继续,并且在启动顺序启动 DNS 服务器后它将连接。
  • /etc/hosts将远程 SFTP 服务器的主机名和适当的 IP 地址添加到本地文件中。
  • 使用远程 SFTP 服务器的 IP 地址代替fstab主机名。

相关内容