Sshfs/Automount

Aus Foxwiki
Version vom 2. April 2023, 15:20 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Automount == Falls man das Dateisystem automatisch beim Systemstart oder bei der Anmeldung einbinden lassen will, muss man die [:SSH#Authentifizierung-ueber-Public-Keys:SSH-Authentifizierung] über Public-Keys einrichten. Man ist nun nicht mehr gezwungen, das Server-Passwort einzutippen. Wichtig für das Einbinden ("mount") während des Systemstarts ist, dass sich die privaten Schlüssel ("private keys") im Root-Verzeichnis '''/root/.ssh/''' befinden o…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Automount

Falls man das Dateisystem automatisch beim Systemstart oder bei der Anmeldung einbinden lassen will, muss man die [:SSH#Authentifizierung-ueber-Public-Keys:SSH-Authentifizierung] über Public-Keys einrichten. Man ist nun nicht mehr gezwungen, das Server-Passwort einzutippen. Wichtig für das Einbinden ("mount") während des Systemstarts ist, dass sich die privaten Schlüssel ("private keys") im Root-Verzeichnis /root/.ssh/ befinden oder explizit über den Parameter -o IdentityFile=/Pfad/zum/publickkey/Schlüsseldateiname angegeben werden.

Systemstart

über die /etc/fstab

In der Datei /etc/fstab muss mit Root-Rechten [7] in einem Editor [4] eine Zeile hinzugefügt werden:

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

Der Parameter `_netdev` ist wichtig, da das System sonst beim Booten nicht weiß, dass eine funktionierende Netzwerkverbindung zum Einbinden der Partition erforderlich ist.

Dispatcher

Man legt mit Root-Rechten [7] in einem Editor [4] eine Datei im Ordner /etc/NetworkManager/dispatcher.d/ an. Der Dateiname sollte mit einer Zahl beginnen, die die Startreihenfolge festlegt, wie beispielsweise 02sshfs. Nach der Erstellung des Skriptes muss dieses ausführbar gemacht werden[8].

Ein Beispielskript sieht z.B. so aus:

#!/bin/bash
IFACE=$1    #wird vom NetworkManager übergeben
BEFEHL=$2   #wird vom NetworkManager übergeben

#SSHFS-Einstellungen
PORT=22 #ssh-Port des Zielsystems
PFAD="/Pfad/Zielordner" # ABSOLUTE PFADANGABE im lokalen System
KEY="/home/user/.mykeys/my_rsakey" #eigener privater Schlüssel

case "$BEFEHL" in
  up)
    #SSHFS-Verbindung herstellen
    #ACHTUNG: die Optionen sind Beispiele und haben keinen Anspruch auf allgemeine Gültigkeit!
    /usr/bin/sshfs -p$PORT user@server:relativer_pfad_auf_dem_server/ $PFAD -o uid=1000,gid=1000,nomap=ignore,allow_other,IdentityFile=$KEY
    ;;
  down)
    /bin/fusermount -u $PFAD
    ;;
  *)
    echo $"usage: $0 {up|down}"
    exit 1
esac

Weiterführende Informationen zu Dispatcher-Skripten gibt es unter [:NetworkManager/Dispatcher:].

Hinweis
Es besteht die Möglichkeit, ein sshfs-mount ebenfalls über die [:interfaces#Start-Stop-Skripte:/etc/network/interfaces] einzubinden, bei Verwendung des [:NetworkManager: Network Managers] (NM) sollte von einer Bearbeitung der /etc/network/interfaces aber abgesehen werden!

Nach der Anmeldung eines Anwenders

Den sshfs-Befehl

Befehl
sshfs Benutzername@irgendEinRechner:/pfad_auf_dem_server/ ~/fusessh

muss man dazu bei jeder Anmeldung automatisch ausführen lassen [5].