Ich versuche, ein Verzeichnis von einem Remote-Ubuntu-Rechner auf meinem Mavericks-Mac automatisch zu mounten. SSHFS funktioniert perfekt, wenn es manuell gemountet wird, und zwar auf viele verschiedene Arten. Die Standard-SSHFS-Mountung funktioniert hervorragend:
sshfs user@desk:/home/user desk
und ich kann sogar verwenden mount
:
sudo mount -t sshfs -o allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa [email protected]:/home/user desk
(Ich folgte demAnweisungen zur automatischen Bereitstellung von OSXFuseeinrichten mount_sshfs
)
mount
Ich möchte daraus ein Automount machen. Der einfachste, von OSXFuse empfohlene Weg ist, den obigen Befehl in einen /etc/fstab
Eintrag umzuwandeln :
[email protected]:/home/user /Network/desk sshfs allow_other,IdentityFile=/Users/user/.ssh/nopass_id_dsa 0 0
aber das funktioniert nicht:
Network $ sudo mount desk
mount: desk: unknown special file or file system.
Wenn ich sudo automount -vc
das tue, erhalte ich entweder eine lange Zeitüberschreitung oder einen wenig hilfreichen Fehler „Operation nicht zulässig“, wenn ich versuche, den Einhängepunkt einzugeben, je nachdem, wie ich mit der Formatierung der fstab-Optionen spiele. Ich erhalte die gleichen Fehler, wenn ich versuche, eine Automount-Map einzurichten, wie beschriebenHier.
Was ist mit meinem fstab-Eintrag nicht in Ordnung? Oder wie kann ich SSHFS sonst unter OSX automatisch mounten?
(Ich verwende 10.9.5 mit SSHFS 2.5.0 von Homebrew)
Antwort1
Aufgrund eines Fehlers in OSXFuse ist dies erforderlich, damit das Flag allow_other funktioniert:
sudo sysctl -w osxfuse.tunables.allow_other=1
Dies kann das fstab-Problem beheben oder auch nicht, aber es funktioniert mit einer direkten Zuordnung. So habe ich meine eingerichtet.
Fügen Sie diese Zeile zu /etc/auto_master hinzu:
/- auto_ssh -nobrowse,nosuid
Erstellen Sie /etc/auto_ssh:
/Users/USER/MOUNT_POINT -fstype=sshfs,allow_other,idmap=user,cache=no USER@LINUXMACHINE:/home/USER
(vorausgesetzt, Sie haben passwortlose Schlüssel eingerichtet.)
Informieren Sie autofs über Ihre Änderungen:
sudo automount -vc
So stellen Sie sicher, dass die Änderung „osxfuse.tunables.allow_other“ einen Neustart übersteht:
Tragen Sie folgendes ein /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>
Laden Sie die plist mit:
launchctl load /Library/LaunchDaemons/sysctl.plist
Antwort2
versuchen Sie, das folgende Format in fstab hinzuzufügen:
BENUTZERNAME@HOSTNAME_ODER_IP:/REMOTE/VERZEICHNIS /LOCAL/MOUNTPOINT fuse.sshfs x-systemd.automount,_netdev,Benutzer,idmap=Benutzer,transform_symlinks,identityfile=/home/BENUTZERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=BENUTZER-ID_N,gid=BENUTZER-GID_N 0 0
Wenn das oben genannte nicht funktioniert, prüfen Sie, ob Sie in diesem Inhalt delay_connect hinzufügen und prüfen.
Auch
siehe Macfusion. Es ist auch hilfreich, die FAQs von OSXFUSE zu lesen, um die Begründung dafür zu erfahren, warum Macfusion für SSHFS-Benutzerbereichsdateisysteme erforderlich ist.