Automount von sshfs mit fstab ohne mount -a

24

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 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

user21886
quelle

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
MariusMatutiae
quelle
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
DmitrySandalov
quelle
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).

SkyRaT
quelle
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

kheraud
quelle