ubuntuusers.de

sshfs Automount funktioniert nicht (korrekt).

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

Yomi

Avatar von Yomi

Anmeldungsdatum:
25. September 2009

Beiträge: Zähle...

Wohnort: Kiel

Ich möchte zwei Verzeichnisse, welche sich auf meinem Server "KUBUS" [Ubuntu 8.10] befinden, über sshfs automatisch auf meinem Laptop "VINCULUM" [Ubuntu 10.4] einbinden lassen. Meine bisherigen Schritte: Ich habe Public-Keys (ohne Passphrase) gemäß Wiki eingerichtet. Sowohl "root" als auch mein User-Zugang "yomi" haben Zugriff auf den Server über ssh. Im Home-verzeichnis habe ich zwei Verzeichnisse als Mount-Punkte angelegt. Das Paket sshfs (universe) habe ich installiert. die Konfigurationsdatei /etc/fuse.conf habe ich mit den Zeilen

mount_max = 999
user_allow_other

befüllt.

In meiner fstab habe ich folgende Zeilen eingefügt:

sshfs#root@KUBUS:/var/daten/audio/ /home/yomi/audio fuse uid=1000,gid=1000,umask=0,allow_other,defaults,_netdev,noauto 0 0
sshfs#root@KUBUS:/var/daten/video/ /home/yomi/video fuse uid=1000,gid=1000,umask=0,allow_other,defaults,_netdev 0 0

Nun sollte ich ja eigentlich erwarten können, dass ~/video sofort nach dem Login gemountet auf dem Desktop vorliegt. Es befindet sich tatsächlich ein Laufwerkssymbol hier, jedoch verbirgt sich dahinter lediglich der leere Mountpoint. Unmounten kann ich ihn nicht, weder aus dem Kontextmenu heraus (Fehlermeldung: umount: /home/yomi/video mount und fstab stimmen nicht überein), noch über den Befehl fusermount -u ~/video (Fehlermeldung: fusermount: entry for /home/yomi/video not found in /etc/mtab) noch über den Befehl sudo fusermount -u ~/video (Fehlermeldung: fusermount: /home/yomi/video not mounted). Sehr mysteriös.

Ein manuelles sshfs root@KUBUS:/var/daten/audio/ /home/yomi/audio führt sofort zu einem korrekten Einbinden. Ich weiß nicht, ob es von Belang ist, aber bei meinen verzweifelten Versuchen, die Fehlerquelle auszumachen ist mir die Datei /etc/mtab aufgefallen. Anscheinend werden die Verzeichnisse unterschiedlich eingebunden:

root@KUBUS:/var/daten/video /home/yomi/video fuse.sshfs rw,max_read=65536,allow_other 0 0
...
root@KUBUS:/var/daten/audio/ /home/yomi/audio fuse.sshfs rw,nosuid,nodev,max_read=65536,user=yomi 0 0

Das seltsame daran ist, dass es unter Ubuntu 9.10 alles tadellos funktioniert hat (Hier hatte ich allerdings bei beiden den noauto-Parameter nicht gesetzt; der besteht erst seit der Fehlersuche). Nach dem Upgrade lief es dann nicht mehr. Ich habe erst herumprobiert, dann eine komplette Neuinstallation durchgeführt, mit anschließender Neueinrichtung. Kein Erfolg.

Im Wikiartikel steht zwar nach uid 1003 und nach der gid 100, aber ich gehe einmal davon aus, das hier meine Daten einzusetzen sind.

Zunächst hatte ich noch Passphrasen bei den PublicKeys, aber nachdem der Fehler auftrat, dachte ich, die Abfrage dieser würde evt. die Verbindung vor dem User-Login stören, also habe ich neue Keys ohne Passphrasen erstellt.

Yomi

(Themenstarter)
Avatar von Yomi

Anmeldungsdatum:
25. September 2009

Beiträge: 10

Wohnort: Kiel

Mir wäre schon damit geholfen, wenn ich von einem Eintrag in der Fstab wüsste, der mit Sicherheit bei einem anderen Nutzer funktioniert (unter Lucid Lynx). Es schwirren so viele davon in Netz herum, dass einem schwindlig werden könnte. Allein bei Ubuntuusers habe ich zwei verschiedene Versionen davon gefunden, einmal im Beitrag zur fstab http://wiki.ubuntuusers.de/fstab#Aufruf, einen bei dem Beitrag zu sshfs http://wiki.ubuntuusers.de/FUSE/sshfs#Automount

sshfs#username@rechnername:/Pfad/auf_Fremndrechner /lokaler/mountpoint fuse uid=1000,gid=100,umask=0,allow_other,defaults,noauto 0 0

Wenn ich es gemäss diesem Eintrag versuche, bekomme ich die Fehlermeldung, nur root könne das Verzeichnis mounten. Ich nehme an, das resultiert aus der fehlenden Option "users", richtig?

sshfs#Benutzername@irgendEinRechner:/pfad_auf_dem_server/ ~/fusessh fuse uid=1003,gid=100,umask=0,allow_other,_netdev 0 0

Neben der Tatsache, dass hier uid=1003 irgendwie sinnfrei ist (ich habe hier bei mir 1000 eingesetzt) habe ich auch bloss wieder das Problem, dass die Verzeichnisse nicht gemounted sind, nach der Anmeldung, entgegengesetzt zu den, was im Wikiartikel steht.

Auf meinem komplett neu installiertem System funktiniert der Automount nicht. Normale SSH-Verbindungen funktionieren tadellos, Keys sind erstellt werden untereinander akzeptiert etc. alles super dahingehend. Auch das händische mounten mit

sshfs yomi@KUBUS:/var/daten/audio ~/Musik

klappt hervorragend.

Meine Frage: Hat das irgendjemand so geschafft, gemäß Wiki-Artikel? Dann bitte ich demütigst um einen kleinen Hinweis. Und warum fällt hier bei der SSH-Authentifizierung über Public-Keys eigentlich die Passphrase weg? Der Wikiartikel sagt hierzu "Man ist nun nicht mehr gezwungen, das Serverpasswort einzutippen." Wenn man seine Keys mit Passphrase schützt (wie ausdrücklich empfohlen), ist das dann hier hinderlich?

Ich meine, wenn schon ganz oben steht: "Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet: Ubuntu Lucid Lynx 10.04" dann muss es ja bei einem geklappt haben ... ><

Yomi

(Themenstarter)
Avatar von Yomi

Anmeldungsdatum:
25. September 2009

Beiträge: 10

Wohnort: Kiel

Habe nach intensivem Nachforschen herausgefunden, dass mit Ubuntu 8.10 nicht mehr die /etc/network/interfaces für die Netzwerkschnittstellen verantwortlich ist, sondern der Network-Manager. Dieser wir erst mit dem Anmelden des Benutzers aktiv. Somit können die Einträge in der fstab natürlich nicht korrekt eingebunden werden. Ich habe mir eine Lösung mit einem kleinen Skript im Verzeichnis /etc/NetworkManager/dispatcher.d gebastelt. Mit Sicherheit ist es nicht optimal, aber ich habe weder die Zeit, noch sehe ich die Notwendigkeit, das Skript allgemeingültig zu schreiben, zumal ich echt kein Bash-Guru bin. Vielleicht kann aber der Eine oder Andere daraus sein Eigenes basteln, deswegen hänge ich es an. Ich kann mir nämlich nicht vorstellen, dass die Aufgabenstellung so speziell ist, Netzwerkverzeichnisse per SSH dauerhaft einbinden zu wollen.

Das Skript heißt bei mir "02mount" und muss natürlich mit Root-Rechten erstellt und ausführbar gemacht werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
## INITIALISIERUNG
#Diese Werte werden vom NetworkManager an das Skript übergeben
INTERFACE=$1
ACTION=$2

KABEL_INTERFACE="eth0"

## Funktionen durchführen, je nach Aktion eine andere
case "$2" in
        up)
                if [ "$INTERFACE" = "$KABEL_INTERFACE" ]; then 
                  	mount /home/yomi/Videos
                fi
                ;;

        down)
                if [ "$INTERFACE" = "$KABEL_INTERFACE" ]; then 
                        umount /home/yomi/Videos
                fi
                ;;

        pre-up)
                ;;

        post-down)
                ;;

        *)
                echo $"Usage: $0 {up|down|pre-up|post-down}"
                exit 1
esac

exit 0

Der dazugehörige Eintrag in der fstab sieht bei mir so aus:

sshfs#yomi@KUBUS:/var/daten/video /home/yomi/Videos fuse uid=1000,gid=1000,user,allow_other,defaults,noauto,nonempty 0 0

Das funktioniert allerdings nur dann, wenn man die Keyfiles ohne Passphrase erstellt. Ich habe nämlich nach einigem Herumprobieren festgestellt, dass das Skript mit root-Rechten läuft und keinen SSH-Agent zur Verfügung hat (warum auch immer). Die Lösung mit ssh-add wie sie im SSH-Wiki steht unter dem Punkt http://wiki.ubuntuusers.de/SSH#SSH-Agent funktioniert hier so nicht. Ich habe es nicht geschafft, den Agenten zu überreden, am Laufen zu bleiben, damit er die Passphrase herausrückt, wenn das Skript sie braucht. Vielleicht kann mir ja hierzu jemand weiterhelfen. Deswegen scheue ich mich auch noch davor, das Thema als "gelöst" zu markieren.

Meiner Meinung nach sollte die Seite zu sshfs nochmal etwas überarbeitet werden - zumindest, was den automount-Abschnitt angeht, da es so nicht funktionieren kann, wenn man den Network-Manager nutzt!

Antworten |