尽管配置了/ etc / fstab,但sshfs不会在启动时自动挂载


24

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

当前配置

  • 我创建了用户someuser并将其添加到保险丝组中

  • 我的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:在尝试挂载之前等待接口启动
  • 用户:允许任何用户要求安装此特定的远程位置(对于root用户而言,在引导时自动安装该位置毫无用处)
  • allow_other:将允许任何用户(在保险丝组中)访问已安装的fs
  • IdentityFile:指向与添加在远程计算机的/home/someuser/.ssh/authorized_key中的公钥配对的私钥。
  • 重新连接:不确定...如果连接断开,会尝试重新连接吗?

问题

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

  • 但是从同一用户(或根用户),我只需键入即可安装它:

    mount sshfs#someuser@remote.com:/remote_dir
    

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

关于可能遗漏的任何线索?


有没有想过这个?我在Ubuntu 14.04 64位计算机上遇到了相同的问题。
glibdud 2014年

看到这个问题的普及,与答案的数量相比,我放弃了fstab方法。我决定硬着头皮,学习如何使用自动安装,以解决大问题。根据我的经验,这是“正确的选择”。在Ubuntu Wiki上可以找到有关Automount的很好的介绍。
广告N

Answers:


18

从Oneiric(自动安装效果很好)升级到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。


1
在没有解决方法的情况下为我工作,没有重命名过的地方。因此,我唯一的更改是添加了delay_connect选项,这在这里肯定有帮助!这次真是万分感谢。只是想知道为什么_netdev在这里还不够...
Nicolas

1
这对我来说也很完美。@Nicolas,我相信_netdev问题会在Tony的回答中得到解释。网络可能已启动,但仍无法解析主机。显然,使用IP地址可以解决此问题,但是谁想要在fstab中使用IP地址呢?
Auspex

对于它的价值,当我以某种方式将其粘贴粘贴到原子中时,它拾取了破坏它的不可见字符。我不得不删除了这些内容
Jonathan

4
它安装正常,但随后我得到:ls / backup:输入/输出错误
Jonathan

在Arch Linux上,添加'delay_connect,workaround = rename'对我有用。谢谢!
aSystemOverload

1

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

  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]
    

allow_other挂载选项暴露Linux内核中未解决的安全漏洞:如果default_permissions挂载选项未与allow_other一起使用,则文件系统对目录条目执行的第一次权限检查的结果将重新用于以后的访问只要所访问条目的索引节点存在于内核高速缓存中,即使权限已更改,并且随后的访问是由其他用户进行的,也是如此。
Monica Cellio的MountainX '18年

0

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


6
我认为“已要求仅在网络就绪时安装” _netdev,并且使用进行更改noauto将使其无法在引导时进行安装(仅在使用mount命令时明确安装
Ad N

0

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

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

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

您可以扩展该delay_connect选项吗?它添加到哪里?编辑您的问题,以包括有关此问题的更多信息。
AJefferiss 2015年

您将其添加到fstab选项列表中:sshfs#user @ host:/ remote / mnt / local保险丝delay_connect,uid = 1000,gid = 100,umask = 0,allow_other 0 0
Tony
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.