使用不挂载-a的fstab自动挂载sshfs


24

请考虑以下fstab行(为便于阅读而换行):

sshfs#user@192.168.1.123:/home/user/ 
/home/user/Server/ 
fuse    
auto,user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/user/.ssh/id_rsa,idmap=user,allow_other  
0 

它工作正常,但是每次重新启动时我都需要使用它mount -a来挂载服务器(或单击Thunar中的相应图标来挂载东西)

是否可以在启动时立即挂载ssh目录?

我正在使用Xubuntu 13.10

Answers:


18

引导时在/ etc / fstab文件中挂载sshfs共享的正确语法是

 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

它是对此处包含的指令的非系统发行版的改编。如果您是不是在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

它看起来几乎和我的fstab行完全相同(权限和symlink选项除外),无论如何我都尝试过,但没有成功。mount -a引导后我仍然需要执行
user21886

很好笑,它仅适用于另一个用户superuser.com/questions/666739/…。您是否检查过用户1000,1000,以及id_rsa中的密钥?
MariusMatutiae

是的,它正在100%运行,但是我需要mount -a在启动后运行。我正在考虑添加mount -a自动启动功能
user21886

在启动时执行安装后,有可能在网络启动之前发生这种情况。尝试在rc.local sleep 10中添加这两行:mount -a
MariusMatutiae

仍然没有成功。Perpaphs的问题是我的配置-xfce(和台式机环境)启动后,我的以太网网络启动了5-15秒。我不知道为什么ubuntu会这样工作。我XFCE等前拱门所连接
user21886

4

尝试使用delay_connect选项。

/ etc / fstab的完整行:

USER@HOSTNAME:/REMOTE/ /LOCAL/ fuse.sshfs delay_connect,_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

2

那些delay_connect,,_netdev...是正确的,但是除非在处理/ etc / fstab时调整网络以使其在那个小的时间窗口内(或之前)完全建立,否则它们将不起作用。处理结束后,稍后再建立网络时,您必须使用mount -a(或朋友)。

在大多数情况下(也是我的情况),这network-manager是造成问题的原因,因为默认情况下登录后网络会启动。可以对其进行调整,以使其在启动时更早地启动。如果我没记错的话,您要做的就是检查Available to all users连接属性对话框中的选项(或者,如果您更喜欢命令行,请在中手动创建连接/etc/NetworkManager/system-connections)。


0

基于此ubuntu帮助页面以及我对Debian 9的尝试,我使它能够正常工作,并对该fstab条目具有正确的文件许可权:

sshfs#user@host:/remote/path /local/path fuse delay_connect,defaults,idmap=user,IdentityFile=/local/path/to/privatekey.pem,port=22,uid=1001,gid=1002,allow_other 0 0

delay_connect确保fstab在网络接口启动之前不会挂载远程文件夹。

您可以更改portuidgid以符合你的需要。要弄清楚我uid/ gid我只是$ id在与正确的用户登录时使用。

allow_other是否允许其他用户/组访问已安装的目录;即使您拥有正确的/local/path权限(例如777),如果您想让其他用户(与安装sshfs的用户不同)访问已安装的目录,也需要这样做。

其他选项可以在sshfs手册页中找到

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.