Zwiegespräch mit dem Server

Veröffentlicht am 27. July 2006

Wer schon einmal einen Rootserver administriert hat, kennt sicher das leidige Problem der Datenübertragung.

Folgende Situation: Man hat auf der einen Seite den eigenen Arbeitsrechner, auf der anderen Seite den Server. Wenn man nun Dateien auf den Server aufspielen möchte, ist der einfachste Weg über FTP:

  • FTP Serverprogramm installieren
  • FTP Benutzer einstellen (evtl. Systembenutzer?)
  • Verbinden und übertragen.

Nun ist diese Vorgehensweise recht trivial und bietet doch gewisse Nachteile:

  1. FTP ist unsicher. Das wird sich auch nicht so schnell ändern. Das Benutzerpasswort wird unverschlüsselt übertragen und die Verbindung ist nicht über TLS/SSL oder sonstiges gesichert. Jeder kann den Traffic abhören.
  2. Wenn man über FTP Daten überträgt, nehmen diese Daten den Owner und die Gruppe des FTP-Benutzers an.
  3. Man kann FTP-Benutzer (mit den üblichen FTP-Servern) nur schwer auf ein Verzeichnis beschränken. Entweder der ganze Verzeichnisbaum oder nur das Home-Verzeichnis des FTP Benutzers

Man sieht also, FTP ist ganz OK für schnelle und einfache Dateiübertragung, bietet aber auch entscheidende Nachteile.

Ein anderer Weg führt über SSH (Secure Shell).

SSH ist eine sehr gute Technik, um direkt Befehle an einen entfernten Rechner zu geben. Man hat gewissermaßen direkten Lese-/Schreibzugriff auf ein virtuelles Terminal auf dem Zeilrechner.

Da SSH uber TLS verschlüsselt wird, ist die Verbindung sehr sicher und geschützt. Allerdings benötigt man ein SSH-Clientprogramm, um die Verbindung aufzubauen. Dafür gibt es unter Windows das Programm PuTTY und OpenSSH unter Linux.

Passend zu SSH gibt es zur Dateiübertragung SCP (Secure Copy), eine Technik mit der Dateien über SSH getunnelt übertragen werden können.
Es ist über scp möglich, viele Dateien nach einem bestimmten Muster über die Kommandozeile zu kopieren (analog zum Systembefehl cp). Außerdem unterstützen viele graphische Dateimanager (z.B. Dolphin) den Dateitransport über SCP.

Über SSH führt letztendlich noch ein guter Weg, den ich heute entdeckt habe:

Es gibt ein Modul SSHFS, mit dem über eine SSH-Verbindung ein entferntes Verzeichnis ins lokale Dateisystem gemounted werden kann.

Unter Ubuntu „Dapper Drake“ benötigt man dazu nur das Paket sshfs:

metax@metalinux:~$ sudo apt-get install sshfs

Ist das Paket installiert, kann man das entfernte Verzeichnis mounten. Dafür habe ich in der /etc/hosts Datei ein alias für meinen Root-Server angelegt:

# /etc/hosts
213.239.194.254    remote.web

Nun kann der Spaß beginnen. Man muss beim Mounten natürlich noch das remote Passwort angeben (selbstverständlich über TLS gesichert). Es gibt für sshfs die meisten Mountoptionen wie für ein normales mount ebenfalls; man sollte zum besseren Funktionieren diese auch anwenden.

Also, los geht’s:

metax@metalinux:~$ sudo bash
Password:
root@metalinux:~# mkdir /media/remote
root@metalinux:~# sshfs -h
usage: sshfs [user@]host:[dir]] mountpoint [options]
root@metalinux:~# sshfs root@remote.web:/var/www/ /media/remote/ -o gid=46,umask=007,allow_other
The authenticity of host 'remote.web (213.239.194.254)' can't be established.
RSA key fingerprint is 25:26:e0:0a:24:79:36:c2:f9:1d:af:26:6f:4b:19:7c.
Are you sure you want to continue connecting (yes/no)? yes
Password:

Ist die Verbindung erst einmal hergestellt, kann man direkt Dateien auf den remoten Server/vom remoten Server kopieren, umbenennen, verschieben etc. Sehr angenehme Bedienung, das ganze, nur etwas langsam (da über Internet).

Ist man fertig, muss die Verbindung natürlich wieder getrennt werden.

root@metalinux:~# umount /media/remote
root@metalinux:~# exit
metax@metalinux:~$ exit
Kategorie: Technik
Schlagworte: