it-swarm.com.de

Automount von sshfs mit fstab ohne mount -a

Bitte beachten Sie folgende fstab-Zeile (Zeilenumbrüche zur besseren Lesbarkeit):

sshfs#[email protected]:/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 

Es funktioniert einwandfrei, aber bei jedem Neustart muss ich mount -a verwenden, um den Server zu mounten (oder auf das entsprechende Symbol in Thunar klicken, um das Ding zu mounten).

Ist es möglich, mein SSH-Verzeichnis sofort beim Booten zu mounten?

Ich benutze Xubuntu 13.10

23
user21886

Die korrekte Syntax zum Mounten von sshfs-Freigaben beim Booten in der Datei/etc/fstab lautet

 [email protected]_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

Es ist eine Anpassung an nicht-systematische Distributionen der hier enthaltenen Anweisungen . Wenn Sie sich stattdessen in einer systemd Distribution (Arch, Fedora, OpenSUSE, ...) befinden, lautet die entsprechende Anweisung:

[email protected]_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
19
MariusMatutiae

Versuchen Sie es mit der Option delay_connect .

Vollständige/etc/fstab-Zeile:

[email protected]:/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
4
DmitrySandalov

Diese delay_connect, _netdev, ... sind korrekt, funktionieren aber nur, wenn Sie das Netzwerk so einstellen, dass es genau in (oder vor) diesem kleinen Zeitfenster angezeigt wird, wenn die Datei/etc/fstab verarbeitet wird. Wenn die Verarbeitung beendet ist und die Vernetzung später erfolgt, müssen Sie den mount -a (oder Freunde) verwenden.

In den meisten Fällen (und auch bei mir) hat der network-manager das Problem verursacht, da das Netzwerk standardmäßignach der Anmeldungaufgerufen wird. Es kann optimiert werden, um es beim Booten früher aufzurufen. Wenn ich mich richtig erinnere, müssen Sie nur die Option Available to all users im Verbindungseigenschaften-Dialogfeld aktivieren (oder, wenn Sie die Befehlszeile bevorzugen, die Verbindung in /etc/NetworkManager/system-connections manuell erstellen).

2
SkyRaT

Basierend auf dieser Ubuntu-Hilfeseite und meinen Versuchen mit Debian 9 bringe ich es zum Laufen und habe mit diesem fstab-Eintrag die richtigen Dateiberechtigungen:

sshfs#[email protected]:/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 stellt sicher, dass fstab den Remote-Ordner nicht mounten kann, bevor die Netzwerkschnittstellen aktiv sind.

Sie können port, uid, gid an Ihre lokalen Anforderungen anpassen. Um meine uid/gid herauszufinden, habe ich einfach $ id verwendet, wenn ich mit dem richtigen Benutzer angemeldet war.

allow_other ermöglicht anderen Benutzern/Gruppen den Zugriff auf das gemountete Verzeichnis. Selbst mit den richtigen /local/path-Berechtigungen (zum Beispiel 777) ist dies erforderlich, wenn ein anderer Benutzer (anders als der, der die sshfs mounten soll) auf das gemountete Verzeichnis zugreifen soll.

Weitere Optionen finden Sie in der Manpage zu sshfs

0
iwalktheline