Automount von sshfs mit fstab ohne mount -a


24

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

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 

Es funktioniert einwandfrei, aber jeder Neustart, den ich mount -azum Mounten des Servers verwenden muss (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

Antworten:


18

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

 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

Es handelt sich um eine Anpassung der hier enthaltenen Anweisungen an Nicht- Systemdistributionen . Wenn Sie stattdessen auf einen ist systemd Distro (Arch, Fedora, OpenSUSE, ...), die entsprechende Anweisung ist:

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

Es sieht aus wie fast genau dieselbe fstab-Zeile wie meine (außer Berechtigungen und Symlink-Option). Wie auch immer, ich habe es versucht und keinen Erfolg. Ich muss immer noch mount -anach dem Booten
ausführen

Das ist lustig, es hat nur für einen anderen Benutzer funktioniert superuser.com/questions/666739/… . Haben Sie überprüft, ob Sie Benutzer 1000, 1000 sind und ob Ihr Schlüssel id_rsa lautet?
MariusMatutiae

Ja, und es funktioniert zu 100%, aber ich muss mount -anach dem Start ausgeführt werden. Ich überlege, mount -azu Autostart hinzuzufügen
user21886

Möglicherweise tritt dies auf, bevor Ihr Netzwerk nach der Ausführung des Ladevorgangs beim Booten hochfährt. Versuchen Sie, diese beiden Zeilen in rc.local sleep 10 hinzuzufügen: mount -a
MariusMatutiae

Immer noch kein Erfolg. Perpaphs, das Problem ist meine Konfiguration - mein Ethernet-Netzwerk ist 5-15 Sekunden nach dem Start von xfce (und Desktop-Umgebung) hochgefahren. Ich weiß nicht, warum Ubuntu so funktioniert. Mein Bogen verbindet sich vor xfce etc.
user21886

4

Versuchen Sie es mit der Option delay_connect .

Vollständige / etc / fstab-Zeile:

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

Diejenigen delay_connect, _netdev... sind korrekt , aber wird nicht funktionieren , wenn Sie die Netzwerk zwicken zu kommen genau in (oder vor) , dass kleine Zeitfenster, wenn der / etc / fstab wird bearbeitet. Wenn die Verarbeitung beendet ist und die Vernetzung später erfolgt, müssen Sie die mount -a(oder Freunde) verwenden.

In den meisten Fällen (und auch bei mir) network-managerhat dies das Problem verursacht, da das Netzwerk nach der Anmeldung standardmäßig hochgefahren 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 usersim Verbindungseigenschaften-Dialogfeld aktivieren (oder, wenn Sie die Befehlszeile bevorzugen, die Verbindung manuell erstellen /etc/NetworkManager/system-connections).


0

Basierend auf dieser Ubuntu-Hilfeseite und meinen Versuchen mit Debian 9 mache ich es möglich und habe die richtigen Dateiberechtigungen für diesen fstabEintrag:

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_connectStellt sicher, fstabdass der Remote-Ordner nicht eingehängt wird, bevor die Netzwerkschnittstellen aktiv sind.

Sie können ändern port, uid, gidIhre lokalen Bedürfnisse anzupassen. Um herauszufinden , meinen uid/ gidhabe ich einfach , $ idwenn sie mit dem richtigen Benutzer angemeldet.

allow_otherDient dazu, anderen Benutzern / Gruppen den Zugriff auf das gemountete Verzeichnis zu ermöglichen. Auch mit den richtigen /local/pathBerechtigungen (zum Beispiel 777) ist dies erforderlich, wenn Sie möchten, dass ein anderer Benutzer (der nicht derjenige ist, der das sshfs bereitstellt) auf das bereitgestellte Verzeichnis zugreift.

Weitere Optionen finden Sie in der sshfs-Manpage

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.