Автоматическое монтирование sshfs с использованием fstab без mount -a


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

Ответы:


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

Это похоже почти на ту же самую строку fstab, что и моя (за исключением прав доступа и опции символической ссылки). В любом случае, я попробовал это, но безуспешно. Мне все еще нужно exec 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

Все еще безуспешно. Проблема заключается в моей конфигурации - моя сеть Ethernet работает через 5-15 секунд после запуска xfce (и окружения рабочего стола). Я не знаю, почему 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что удаленная папка не будет смонтирована до запуска сетевых интерфейсов

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.