设置一些 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
另外,为了补充所有先前的评论,
确保允许非 root 用户指定
allow_other
挂载选项/etc/fuse.conf
确保在 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
主机名。