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#someuser@remote.com:/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#someuser@remote.com:/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?


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.


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]
    

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


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.

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