如何在 OSX 上使用 /etc/fstab 和/或 automount 與 sshfs?

如何在 OSX 上使用 /etc/fstab 和/或 automount 與 sshfs?

我正在嘗試從我的 Mavericks Mac 上的遠端 Ubuntu 電腦自動掛載目錄。 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 條目有什麼問題?或者,我還能如何在 OSX 上自動掛載 sshfs?

(我在 10.9.5 上使用自製程式的 sshfs 2.5.0)

答案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 中新增以下格式:

USERNAME@HOSTNAME_OR_IP:/遠端/目錄/本地/掛載點fusion.sshfs x-systemd.automount,_netdev,使用者,idmap=使用者,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_,default_permissions,defaultuid =USER_ID_N ,gid=USER_GID_N 0 0

如果上述不起作用,請檢查b 在該內容中加入delay_connect 並檢查。

參見麥克融合。閱讀 OSXFUSE 的常見問題解答也很有幫助,因為他們解釋了將 Macfusion 作為 SSHFS 使用者空間檔案系統的要求的理由。

http://macfusionapp.org/

相關內容