尽管有/ etc / fstab配置,sshfs在引导时不会自动挂载

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

当前配置

  • 我创建了用户someuser并将其添加到fuse

  • 我的fstab条目如下:

    sshfs#someuser@remote.com:/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 

从我的理解:

  • auto :明确要求在启动时挂载远程fs
  • _netdev :在尝试挂载之前等待接口启动
  • user :允许任何用户请求安装此特定远程位置(在root用户的角度看无用,在启动时自动安装它)
  • allow_other :允许任何用户(在保险丝组中?)访问已安装的fs
  • IdentityFile :指向与远程计算机的/home/someuser/.ssh/authorized_key中添加的公钥配对的私钥。
  • 重新连接 :不确定…如果连接丢失,是否会尝试重新连接?

问题

  • 在启动时,我使用someuser登录,启动终端,并且/ media / remote_dir为空。

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

     mount sshfs#someuser@remote.com:/remote_dir 

    如果我在文件浏览器中单击remote_dir ,它也会自动安装。

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

从Oneiric(automount工作正常)升级到Precise后,我遇到了完全相同的问题。

是什么解决了我的问题是添加了delay_connect选项。 此外,自从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调整到您自己的环境中。

有同样的问题,我认为你需要汽车是noauto。 它不应该在启动时挂载,它应该在eth启动时挂载

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

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

  • 添加delay_connect选项以允许引导序列继续,并且在引导序列启动后将连接的DNS服务器。
  • 使用适当的IP地址将远程SFTP服务器的主机名添加到本地/etc/hosts文件中。
  • fstab使用远程SFTP服务器的IP地址而不是主机名。

也补充所有以前的评论,

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

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

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