Как использовать /etc/fstab и/или automount с sshfs на OSX?

Как использовать /etc/fstab и/или automount с sshfs на OSX?

Я пытаюсь автоматически смонтировать каталог с удаленной машины Ubuntu на моем Mac Mavericks. SSHFS отлично работает при ручном монтировании, многими разными способами. Стандартное монтирование sshfs работает отлично:

sshfs user@desk:/home/user desk 

и я даже могу использовать mount:

sudo mount -t sshfs -o allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa [email protected]:/home/user desk

(Я следовал заИнструкции по автомонтированию OSXFuseустановить mount_sshfs)

Я хочу превратить это в автомонтирование. Самый простой способ, рекомендованный OSXFuse, — превратить указанную выше mountкоманду в /etc/fstabзапись:

[email protected]:/home/user    /Network/desk   sshfs   allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa 0 0 

но это не работает:

Network $ sudo mount desk
mount: desk: unknown special file or file system.

Аналогично, если я sudo automount -vcэто сделаю, то я либо получу долгое время ожидания, либо бесполезную ошибку «Операция не разрешена» при попытке войти в точку монтирования, в зависимости от того, как я играю с форматированием параметров fstab. Я получаю те же ошибки, когда пытаюсь настроить карту автомонтирования, как описаноздесь.

Что не так с моей записью fstab? Или как еще можно автоматически монтировать sshfs на OSX?

(У меня 10.9.5 с sshfs 2.5.0 от homebrew)

решение1

Из-за ошибки в OSXFuse это необходимо для работы флага allow_other:

sudo sysctl -w osxfuse.tunables.allow_other=1

Это может исправить или не исправить проблему fstab, но это работает с прямой картой. Вот как я настроил свой.

Добавьте эту строку в /etc/auto_master:

/-                              auto_ssh          -nobrowse,nosuid

создайте /etc/auto_ssh:

/Users/USER/MOUNT_POINT          -fstype=sshfs,allow_other,idmap=user,cache=no          USER@LINUXMACHINE:/home/USER

(при условии, что у вас настроены ключи без пароля.)

Сообщите autofs о ваших изменениях:

sudo automount -vc

Чтобы изменение osxfuse.tunables.allow_other сохранилось после перезагрузки:

Вставьте следующее /Library/LaunchDaemons/sysctl.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Label</key>
 <string>sysctl</string>
 <key>ProgramArguments</key>
 <array>
   <string>/bin/bash</string>
   <string>-c</string>
   <string>/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs; /usr/sbin/sysctl -w osxfuse.tunables.allow_other=1</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

Загрузите plist с помощью:

launchctl load /Library/LaunchDaemons/sysctl.plist

решение2

попробуйте добавить следующий формат в fstab:

ИМЯ_ПОЛЬЗОВАТЕЛЯ@ИМЯ_ХОСТА_ИЛИ_IP:/УДАЛЕННЫЙ/КАТАЛОГ /ЛОКАЛЬНЫЙ/ТОЧКА_МОНТИРОВАНИЯ fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.ssh/id_rsa,allow_other,default_permissions,uid=ИД_ПОЛЬЗОВАТЕЛЯ_N,gid=ИД_ПОЛЬЗОВАТЕЛЯ_GID_N 0 0

Если вышеописанное не работает, проверьте, не добавлена ​​ли в этот контент задержка delay_connect, и проверьте.

Также

см. Macfusion. Также полезно прочитать FAQ OSXFUSE, чтобы узнать, почему Macfusion является обязательным требованием для файловых систем пользовательского пространства SSHFS.

http://macfusionapp.org/

Связанный контент