23

Пожалуйста, рассмотрите следующую строку 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

4 ответа4

18

Правильный синтаксис для монтирования общих ресурсов sshfs при загрузке в файле /etc /fstab

 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

Это адаптация к несистемным дистрибутивам инструкций, содержащихся здесь. Если вы вместо этого находитесь в системном дистрибутиве (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
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 не смонтирует удаленную папку до запуска сетевых интерфейсов.

Вы можете изменить port , uid , gid в соответствии с вашими локальными потребностями. Чтобы выяснить мой uid / gid я просто использовал $ id при входе в систему с нужным пользователем.

allow_other позволяет другим пользователям / группам получить доступ к смонтированному каталогу; Даже с правами доступа /local/path (например, 777), это необходимо, если вы хотите, чтобы другой пользователь (отличный от того, кто монтировал sshfs) имел доступ к смонтированному каталогу.

Другие варианты можно найти на странице руководства sshfs.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .