SSHFS, ein einfacher Weg für sichere Dateizugriffe auf andere Server

SSHFS, oder Secure Shell File System, ist ein leistungsstarkes Werkzeug, das es ermöglicht, Dateien über eine verschlüsselte Verbindung zwischen zwei Rechnern auszutauschen. Es basiert auf dem Secure Shell (SSH) Protokoll und bietet eine sichere Möglichkeit, auf entfernte Dateisysteme zuzugreifen, als ob sie lokal auf Ihrem Computer vorhanden wären. In diesem Blogbeitrag werden wir einen detaillierten Blick darauf werfen, wie man SSHFS verwendet, um sicher auf entfernte Dateien zuzugreifen.

Was ist SSHFS?

SSHFS ist eine Anwendung, die auf dem SSH-Protokoll aufbaut, um eine sichere Verbindung zwischen zwei Rechnern herzustellen. Es ermöglicht Benutzern, auf entfernte Dateien zuzugreifen, als ob sie lokal auf ihrem eigenen Computer gespeichert wären. Dieser Zugriff erfolgt über eine verschlüsselte Verbindung, wodurch die Übertragung sensibler Daten geschützt wird.

Installation

Bevor wir SSHFS verwenden können, müssen wir sicherstellen, dass es auf unserem System installiert ist. Die meisten Linux-Distributionen können es über den Paketmanager Ihrer Distribution installieren. Zum Beispiel:

sudo apt-get install sshfs # Für Ubuntu/Debian
sudo yum install sshfs # Für Fedora/RHEL

Verwendung

Nach der Installation können Sie das Programm direkt verwenden, um auf entfernte Dateien zuzugreifen. Der grundlegende Befehl lautet:

sshfs [Benutzer]@[Server]:[Entfernter-Ordner] [Lokaler-Mountpoint]
  • [Benutzer]: Ihr Benutzername auf dem entfernten Server.
  • [Server]: Die IP-Adresse oder der Hostname des entfernten Servers.
  • [Entfernter-Ordner]: Der Pfad zum entfernten Ordner, auf den Sie zugreifen möchten.
  • [Lokaler-Mountpoint]: Der lokale Ordner, in dem Sie die entfernten Dateien einbinden möchten.

Ein praktisches Beispiel:

sudo -i 

sudo mkdir /mnt/remote

sshfs user@example.com:/remote/folder /mnt/remote

Ersetzen Sie user durch den Benutzernamen und example.com durch die IP-Adresse oder den Hostnamen des Ziel-ssh-Servers. Nachdem Sie diesen Befehl ausgeführt haben und das Passwort für den Remote-User eingegeben haben, wird der entfernte Ordner unter /mnt/remote wie ein lokaler Ordner erscheinen. Sie müssen in diesem Fall jedoch zum root User wechseln oder sudo nutzen, da es sich bei dem Remote-Ordner um das Verzeichniss /home handelt und dem lokalen User test die Berechtigungen fehlen, um mit den Dateien in diesem Ordner zu arbeiten. Dieser Ordner ist auf dem Remote-System Eigentum von root, somit kann nur ein Nutzer mit root-Rechten auf das Verzeichnis /home und die Unterverzeichnisse zugreifen.

Verwendung von sshfs

User Mapping:

Mit den Optionen „-o idmap=user -o uid=USERID -o gid=GROUPID“ können Sie „User Mapping“ aktivieren. Dies ist hilfreich, falls die auf dem Remote-Host gespeicherten Dateien einen Eigentümer haben, der auf dem lokalen System nicht vorhanden ist. Dabei werden die entfernten User-Angaben auf die im Kommando angegebenen Werte übertragen. Ein Beispiel hier mit dem User „suu“:

sudo sshfs -o idmap=user -o uid=$(id -u) -o gid=$(id -g) user@example.com:/remote/folder /mnt/remote
user mapping

Schalter:

Es ist möglich dem User auf dem lokalen System die Berechtigung des Remote-Users zuzuschreiben und ihm den Zugriff auf den Mountpoint, in Form eines handelsüblichen Mountpoints (wie z.B. eines USB-Sticks) zu ermöglichen. Somit werden keine root-Rechte zum bearbeiten von Dateien benötigt, vorrausgesetzt die Dateien gehören dem Remote-User (UID/GID!!).

sudo sshfs -o allow_other,default_permissions user@example.com:/remote/folder /mnt/remote
schalter

Somit lassen sich die Schalter „-o allow_other,default_permissions“ mit dem User mapping hervorragend kombinieren, wie Sie im folgenden Beispiel sehen können:

sudo sshfs -o allow_other,default_permissions -o idmap=user -o uid=$(id -u) -o gid=$(id -g) user@example.com:/remote/folder /mnt/remote
user mapping & schalter

Public-Key-Authentifizierung:

Die Public-Key-Authentifizierung mit SSH bietet eine sicherere Möglichkeit, auf entfernte Server zuzugreifen, indem sie die Verwendung von Passwörtern ersetzt. Es folgt eine einfache Anleitung:

1. Schlüsselpaar generieren:

Verwenden Sie den Befehl ssh-keygen, um ein SSH-Schlüsselpaar zu erstellen. Standardmäßig werden die Schlüssel im Verzeichnis ~/.ssh/ erstellt.

ssh-keygen -t rsa -b 2048

Folgen Sie den Anweisungen, um einen Speicherort für den Schlüssel festzulegen und optional ein Passwort einzugeben.

2. Öffentlichen Schlüssel auf den Server kopieren:

Nutzen Sie ssh-copy-id, um den öffentlichen Schlüssel auf den Zielserver zu kopieren. Dies wird das Hinzufügen des Schlüssels zur authorized_keys-Datei auf dem Server ermöglichen.

ssh-copy-id user@server

Ersetzen Sie user durch den Benutzernamen und server durch die IP-Adresse oder den Hostnamen des Ziel-ssh-Servers. Sie werden möglicherweise nach dem Passwort für den Server-Account gefragt. Dies gilt nicht für root! Für den root-User muss die Konfiguration manuell erfolgen, da hier kein Passwort bekannt ist und auch kein eigenes gesetzt werden darf!

3. Testen Sie die SSH-Verbindung:

Versuchen Sie sich ohne Passwort einzuloggen, um sicherzustellen, dass die Public-Key-Authentifizierung funktioniert.

ssh user@server

Wenn die Verbindung erfolgreich ist, sollten Sie ohne Eingabe eines Passworts auf den Server zugreifen können. Hier ein Beispiel wie es aussehen soll:

Public-Key-Authentifizierung

Bei einer Verbindung mit einem root-User, wie sie hier oben zu sehen ist, in Kombination mit den oben erklärten Schaltern und dementsprechenden „User Mapping“, erhält der Remote-User vollen Zugriff auf die Daten des Remote-Systems.

Trennen der SSHFS-Verbindung

Nachdem Sie Ihre Arbeit mit den entfernten Dateien abgeschlossen haben, können Sie die Verbindung hiermit trennen:

fusermount -u [Lokaler-Mountpoint]

Zum Beispiel:

sudo fusermount -u /mnt/remote

Oder einfach:

sudo umount /mnt/remote

Fazit

SSHFS bietet eine bequeme und sichere Methode, um auf entfernte Dateien zuzugreifen. Durch die Verwendung des SSH-Protokolls wird die Verbindung verschlüsselt, was besonders wichtig ist, wenn sensible Daten über das Netzwerk übertragen werden. Die Installation und Verwendung von SSHFS sind relativ einfach und ermöglichen es Benutzern, entfernte Dateien nahtlos in ihre lokalen Dateisysteme einzubinden.

Indem Sie SSHFS in Ihre täglichen Arbeitsabläufe integrieren, können Sie effizient auf entfernte Ressourcen zugreifen, ohne sich um Sicherheitsbedenken sorgen zu müssen.

Weitere interessante Beiträge finden Sie in unserem Blog, oder machen Sie direkt mit dem nächsten Beitrag zu Linux weiter.