Ordner via SFTP lokal mounten

Ordner via SFTP lokal mounten

Vieles unter Linux lässt sich ohne grafische Oberfläche erledigen: Vim ist beispielsweise ein mächtiger Texteditor. Er erlaubt das Bearbeiten von Konfigurationsdateien auf entfernten Servern via Konsole. Hierbei muss man weder auf Syntax-Highlighting, noch andere Funktionen von grafischen Editoren wie z.B. Suchen/Ersetzen, ausschneiden/kopieren und vielem mehr verzichten. Manchmal mag man es dennoch komfortabler finden, einen grafischen Texteditor wie Visual Studio Code zu nutzen. Dafür auf dem Zielserver eine grafische Oberfläche inklusive Editor und VNC zu installieren, wäre jedoch definitiv Overkill.

Eine wesentlich bessere Lösung ist das lokale Mounten des entfernten Dateisystems via SFTP: So können wir bequem mit jeglicher lokaler Software darauf zugreifen, ohne zusätzliche Programme auf dem Server installieren zu müssen. Folgende Anleitung zeigt dies am Beispiel eines Ubuntu 19.10 Clients. Unter anderen Versionen bzw. Distributionen funktioniert es ähnlich, ggf. mit leicht abgewandelten Paketnamen.

Vorbereitung

Das Paket sshfs muss auf dem Client, der den Mount ausführen soll, installiert sein. Sofern dies noch nicht der Fall ist, kann es via Paketmanager installiert werden:

sudo apt-get install sshfs

Das Mounten

Nun legen wir einen Ordner als Mountpunkt an. In diesem Beispiel im Homeverzeichnis des aktuellen Nutzers. Er ist jedoch frei wählbar, so lange die Berechtigungen stimmen:

mkdir ~/sftp-server1

Mit dem sshfs Befehl mounten wir nun den gewünschten Remote-Ordner auf das soeben erstellte lokale Verzeichnis:

sshfs user@server1:/remote/path ~/sftp-server1

Der Ordner /remote/path auf dem entfernten Server mit Hostname server1 steht uns dann unter dem lokalen Pfad ~/sftp-server1 zur Verfügung.

Automatisches Mounten

Wird der Zugriff auf ein entferntes Verzeichnis regelmäßig benötigt, macht es Sinn, dies automatisch zu mounten. Hierfür gibt es grundsätzlich zwei verschiedene Möglichkeiten:

Im Kontext eines Benutzers

Diese Methode ist zu bevorzugen, da das Mouting dann nur bei der Anmeldung eines spezifischen Linux-Benutzers durchgeführt wird. Gerade bei Serven möchte man im Regelfall nicht, dass alle Anwender darauf Zugriff haben. Hierzu fügt man den sshfs Befehl einfach mit der @reboot Directive als Cron ein:

crontab -e
@reboot sshfs idmap=user root@server1:/ ~/sftp-server1

Global via fstab

Möchte man es systemweit beim Start einhängen, hilft die Datei /etc/fstab weiter. Hier muss mit Root-Rechten folgende Zeile eingetragen werden:

sshfs#user@server1:/remote/path ~/sftp-server1 fuse uid=1003,gid=100,umask=0,allow_other,_netdev 0 0

Wichtig ist das Flag _netdev. Es legt fest, dass zum Einhängen eine Netzwerkverbindung bestehen muss.

Leave a Reply