Wer sein Webhosting aus der Ferne verwaltet, benutzt normalerweise eine grafische Benutzeroberfläche. Die reibungslose Funktion und die einfache Bedienbarkeit dieser grafischen Benutzeroberflächen ist eine echte Herausforderung, schließlich ist es so eine Art „Fernbedienung“ für den Server. Im Jahre 2018 funktionieren Tools wie cPanel allerdings wirklich gut.
In der Webentwicklung ist die Kommandozeile in den letzten Jahren allerdings wieder in Mode gekommen. Entwickler, Administratoren und Site Builder können Wartungs- und Entwicklungsaufgaben damit vereinfachen (wenn sie wissen, was sie tun 🙂 ). Auch bei Content Management Systemen wie WordPress (WP-CLI) und Drupal (Drush) wird die Kommandozeile immer beliebter.
Um mit dem Server deines Webhostings Kontakt aufzunehmen, benötigst du ein Kommandozeilen Programm. Kommandozeilen Programme gibt es für alle Betriebssystem Plattformen. Windows Benutzer nehmen meist PuTTY, Mac und Linux Benutzer haben das Terminal oder Shell Programm bereits im Betriebssystem enthalten. Für Android und iOS gibt es ebenfalls zahlreiche Terminal Apps. Der große Vorteil der Kommunikation via Shell sind die Sicherheit und die geringen Datenmengen, die übertragen werden müssen. Eine Verbindung per SSH funktioniert „immer“, zur Not auch auf einem Telefon mit schlechter Internet Anbindung.
Verbindung aufbauen
Das Kommandozeilen Programm besteht aus einem schwarzen Fenster mit einem Eingabebereich. Alle Befehle, die hier eingegeben werden, werden auf dem lokalen System ausgeführt. Um ein Webhosting bei uns zu erreichen musst du den ssh Befehl nutzen. Als Parameter übergibst du den Benutzernamen und den Host.
ssh [Benutzername]@[host]
In meinem Fall ist das ssh seafoll1@ftp.seafolly.ch. Benutzername und Host sind die gleichen, wie bei deinem FTP Zugriff.
Der Server fragt nach deinem Passwort.
Es ist ebenfalls das gleiche wie dein FTP Passwort.
Nach der Eingabe des Passworts verwandelt sich der Prompt der lokalen Kommandozeile (hagengraf: hagengraf$) in den Prompt des Webhosting Servers (seafoll1@srv11 [~]# ). Alle Befehle, die du nun absendest, werden von dem Server ausgeführt auf dem sich dein Webhosting befindet. Die Verbindung ist sicher und schnell. Übertragen wird nur dein Befehl und die Antwort des Servers. Das sind erheblich weniger Daten als bei einer grafischen Benutzeroberfläche.
Mit Schlüssel verbinden (empfohlen)
Anstelle der Verbindung mit einem Passwort gibt es auch die Verbindung mit einem Schlüsselpaar. Der eine Schlüssel ist öffentlich und liegt auf dem Server. Der andere Schlüssel ist privat und liegt auf dem lokalen Gerät. Wenn du beispielsweise jemandem Zugriff auf die Kommandozeile geben möchtest, aber nicht das dazugehörige Passwort, so kannst du einen Schlüssel erzeugen, aktivieren und an die berechtigte Person weitergeben. Der Nutzer mit Schlüssel kann sich dann ohne Passwort mit dem Server verbinden. Du kannst beliebig viele Schlüssel erzeugen, sowie existierende Schlüssel autorisieren und wieder sperren.
Wenn ich mich über die lokale Kommandozeile mit dem Webhosting verbinden möchte, gebe ich einfach ein …
ssh seafolly_ch
… bestätige mit Enter und bin „drin“.
Schlüssel erzeugen und aktivieren
Um einen Schlüssel zu erzeugen, öffnest du cPanel und suchst nach ssh.
In der folgenden Seite wird ein ausführlicher Erläuterungstext und der Button SSH-Schlüssel verwalten angezeigt. Nach einem Klick auf den Button gelangst du zur Übersicht. In meinem Fall steht da schon ein Schlüssel, den ich benutze, mit dem Namen seafolly_ch.
Achtung: Der private Schlüssel sollte aus Sicherheitsgründen nach der lokalen Konfiguration vom Server gelöscht werden.
Du kannst nun Schlüssel erzeugen oder existierende Schlüssel importieren. Um ein Schlüsselpaar zu erzeugen, klicke auf Neuen Schlüssel erzeugen. Ich nenne ihn seafollybeispiel. Dieser Name ist beliebig wählbar. Dann vergebe ich das Schlüsselkennwort (Pass Phrase). Als Typ nehme ich RSA und die größte Schlüsselgröße.
Die Schlüssel werden erzeugt und liegen als Datei im Verzeichnis .ssh auf dem Server. Auf dieses Verzeichnis kannst du auch per FTP zugreifen.
Die Schlüssel sind erzeugt aber noch nicht autorisiert. Durch einen Klick auf den zurück Link gelangst du wieder in die Übersicht. Dort ist nun ein neuer Schlüssel verfügbar, der noch nicht autorisiert worden ist.
Über den Link Verwalten kannst du den öffentlichen Schlüssel autorisieren.
Lokale Umgebung konfigurieren
Der private Schlüssel muss nun auf dem lokalen Gerät an der richtigen Stelle installiert werden (bei macOS ist das im Ordner .ssh im entsprechenden Benutzerverzeichnis). Du kannst den privaten Schlüssel als Datei herunterladen oder per Copy & Paste in eine lokal erzeugte Datei kopieren.
Wenn die Datei ebenfalls seafollybeispiel heißt, müssen in der SSH Konfigurationsdatei config
nano ~/.ssh/config
die folgenden Werte eingegeben werden:
Host seafollybeispiel User seafoll1 Port 22 HostName ftp.seafolly.ch IdentityFile ~/.ssh/seafollybeispiel
Außerdem darf die Datei nicht zu viele Zugriffsrechte haben, ansonsten führt der Verbindungsaufbau zur Fehlermeldung:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '/Users/hagengraf/.ssh/seafollybeispiel' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.
Der Befehl
chmod 0400 seafollybeispiel
löst das Problem.
Nun kannst du dich mit dem Befehl
ssh seafollybeispiel
ohne ein Passwort anmelden und die Kommandozeile des Servers nutzen.
Hinweis: Die lokale Installation ist
Links
tl;dr: Du kannst dich ohne Passwort per SSH an der Kommandozeile deines Webhostings anmelden
Schreibe einen Kommentar