sshfs wird trotz / etc / fstab-Konfiguration nicht automatisch beim Booten eingehängt

24

Beim Einrichten einer Ubuntu (13.04) Workstation versuche ich, ein Remote-Dateisystem (über ssh) bereitzustellen.

Die aktuelle Konfiguration

  • Ich habe Benutzer einbenutzer und hinzugefügt , um es an die Sicherungsgruppe

  • Mein fstab- Eintrag lautet wie folgt :

    sshfs#[email protected]:/remote_dir  /media/remote_dir/   fuse    auto,_netdev,port=22,user,allow_other,noatime,follow_symlinks,IdentityFile=/home/someuser/.ssh/id_rsa,reconnect     0       0
    

Meinem Verständnis nach :

  • auto : fordert explizit an, dass die fs beim booten eingehängt werden
  • _netdev : Warten Sie, bis die Schnittstelle aktiv ist, bevor Sie versuchen, sie zu mounten
  • Benutzer : Jeder Benutzer kann die Bereitstellung dieses bestimmten Remotestandorts anfordern (aus Sicht des Root-Benutzers nutzlos, der die Bereitstellung automatisch beim Systemstart vornimmt).
  • allow_other : Ermöglicht jedem Benutzer (in der Sicherungsgruppe?) den Zugriff auf die bereitgestellten fs
  • IdentityFile : Verweist auf den privaten Schlüssel, der mit dem öffentlichen Schlüssel gepaart ist, der im Verzeichnis /home/someuser/.ssh/authorized_key des Remotecomputers hinzugefügt wurde .
  • Verbindung wiederherstellen : Nicht sicher ... Wird versucht, die Verbindung wiederherzustellen, wenn die Verbindung unterbrochen wird?

Das Problem

  • Beim Booten logge ich mich mit einem Benutzer ein , starte ein Terminal und / media / remote_dir ist leer.

  • Aber vom selben Benutzer (oder Root) kann ich es einhängen, indem ich einfach Folgendes eingebe:

    mount sshfs#[email protected]:/remote_dir
    

    Es wird auch automatisch gemountet, wenn ich in einem Dateibrowser auf remote_dir klicke .

Haben Sie einen Hinweis darauf, was fehlen könnte?

Anzeige Nr
quelle
Hast du das jemals herausgefunden? Ich habe das gleiche Problem auf einem Ubuntu 14.04 64-Bit-Computer.
Glibdud
Angesichts der Popularität dieser Frage im Vergleich zur Anzahl der Antworten habe ich den fstab-Ansatz aufgegeben. Ich habe mich entschlossen, in die Kugel zu beißen und zu lernen, wie man Automount benutzt, um das große Problem zu lösen. Aus meiner Erfahrung war es "die richtige Wahl". Eine gute Einführung in Automount finden Sie im Ubuntu-Wiki .
Anzeige N

Antworten:

18

Ich hatte genau das gleiche Problem nach dem Upgrade von Oneiric (bei dem der Automount einwandfrei funktioniert hat) auf Precise.

Was das Problem für mich löste, war das Hinzufügen der delay_connect- Option. Außerdem habe ich die Option "workaround = rename" bereits seit Oneiric-Zeiten verwendet. Ich bin mir nicht sicher, ob es heute noch gebraucht wird, aber es scheint zumindest nicht weh zu tun.

Meine vollständige / etc / fstab-Zeile lautet:

sshfs#user@host:/remote/dir /local/dir fuse delay_connect,idmap=user,uid=1000,gid=1000,umask=0,allow_other,_netdev,workaround=rename 0 0

Sie müssten natürlich die Benutzer- / Gruppen-IDs an Ihre eigene Umgebung anpassen.

lbo
quelle
1
Arbeitete für mich ohne Workaround = umbenennen, wo es vorher nicht funktioniert hat. Meine einzige Änderung war das Hinzufügen der delay_connect-Option, die hier definitiv geholfen hat! Danke dafür. Ich frage mich nur, warum _netdev hier nicht genug ist ...
Nicolas
1
Das funktioniert auch bei mir perfekt. @Nicolas, ich glaube, das _netdevProblem ist in Tonys Antwort erklärt. Das Netzwerk ist möglicherweise in Betrieb, kann den Host jedoch immer noch nicht auflösen. Die Verwendung einer IP-Adresse würde das natürlich lösen, aber wer möchte IP-Adressen in seiner fstab haben?
Auspex
Irgendwie hat es unsichtbare Zeichen gefunden, die es kaputt gemacht haben, als ich es in atom kopiert habe. Ich musste diese entfernen
Jonathan
4
Es hängt in Ordnung, aber dann bekomme ich: ls / backup: Input / Output-Fehler
Jonathan
Das Hinzufügen von 'delay_connect, workaround = rename' hat für mich unter Arch Linux funktioniert. Vielen Dank!
aSystemOverload
1

Auch um alle vorherigen Kommentare zu ergänzen,

  1. Stellen Sie sicher, dass Sie Nicht-Root-Benutzern erlauben, die allow_otherMount-Option in anzugeben/etc/fuse.conf

  2. Stellen Sie sicher, dass Sie jeden sshfs-Mount während des Root-Vorgangs mindestens einmal manuell ausführen, damit die Signatur des Hosts zur ~/.ssh/known_hostsDatei hinzugefügt wird.

    sshfs [user]@[host]:[remote_path] [local_path] -o allow_other,IdentityFile=[path_to_id_rsa]
    
Martin Brousseau
quelle
Mit der Option allow_other mount wird eine ungelöste Sicherheitslücke im Linux-Kernel angezeigt: Wenn die Mount-Option default_permissions NICHT zusammen mit allow_other verwendet wird, werden die Ergebnisse der ersten vom Dateisystem durchgeführten Berechtigungsprüfung für einen Verzeichniseintrag für nachfolgende Zugriffe erneut verwendet Solange der Inode des aufgerufenen Eintrags im Kernel-Cache vorhanden ist - auch wenn sich die Berechtigungen seitdem geändert haben und der spätere Zugriff von einem anderen Benutzer vorgenommen wird.
MountainX für Monica Cellio
0

hatte das gleiche problem, ich glaube du brauchst auto um noauto zu sein. Es sollte nicht beim Booten eingebunden werden, es sollte eingebunden werden, wenn die eth aktiv ist

Piet Bijl
quelle
6
Ich denke, die "mount only when network ready" wird bereits mit gefragt _netdev, und das Ändern mit noautowürde es unmöglich machen, beim Booten zu mounten (nur explizit bei Verwendung des Befehls mount )
Ad N
0

Wenn Sie es von einem autorisierenden DNS-Server laden möchten /etc/fstabund der Hostname Ihres Remote-SFTP-Servers von diesem DNS-Server bereitgestellt wird, können Sie mit Sicherheit keine Verbindung herstellen, da der Hostname noch nicht aufgelöst werden kann. Entweder muss der DNS-Server beim Bereitstellen ausgeführt werden, oder Sie müssen eine alternative Methode finden, um die IP-Adresse Ihres Remoteservers abzurufen.

In diesem Fall können Sie eine der folgenden Lösungen auswählen:

  • Fügen Sie die delay_connectOption hinzu, damit die Startsequenz fortgesetzt werden kann, und nachdem die Startsequenz gestartet wurde, stellt der DNS-Server eine Verbindung her.
  • Fügen Sie den Hostnamen Ihres Remote-SFTP-Servers /etc/hostsmit der entsprechenden IP-Adresse zu Ihrer lokalen Datei hinzu.
  • Verwenden Sie die IP-Adresse Ihres Remote-SFTP-Servers fstabanstelle des Hostnamens.
Tony
quelle
Können Sie die delay_connectOption erweitern? Wo ist es hinzugefügt? Bearbeiten Sie Ihre Frage mit weiteren Informationen.
AJefferiss
Sie fügen es in der fstab Optionsliste: sshfs # user @ host: / remote / mnt / local Sicherung delay_connect, uid = 1000, gid = 100, umask = 0, allow_other 0 0
Tony