Автоматизуйте 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, що і мій (за винятком дозволів та опцій symlink). Я все-таки намагався, і успіху не було. Мені ще потрібно виконати mount -aпісля завантаження
user21886

Це смішно, він просто працював для іншого користувача superuser.com/questions/666739/… . Ви перевірили, що ви користуєтеся 1000,1000, і що ваш ключ в id_rsa?
MariusMatutiae

Так, і працює на 100%, але мені потрібно запустити mount -aпісля завантаження. Я готую додати mount -aдо автозапуску
user21886

Можливо, це відбувається до того, як ваша мережа з’явиться після виконання монтажу під час завантаження. Спробуйте додати ці два рядки в rc.local сон 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... є правильними , але не працюватимеш , якщо ви налаштувати мережу , щоб придумати точно (або раніше) , що невелике тимчасове вікно, коли / і т.д. / 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.