Die Kommandozeile ist nicht totzukriegen :)

Terminal macOS

Terminal macOS

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.

Terminal OSX
Terminal OSX

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.

cPanel SSH-Zugriff
cPanel SSH-Zugriff

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.

SSH-Schlüssel - Übersicht
SSH-Schlüssel – Übersicht

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.

SSH-Schluesselpaar - erzeugen
SSH-Schluesselpaar – erzeugen

Die Schlüssel werden erzeugt und liegen als Datei im Verzeichnis .ssh auf dem Server. Auf dieses Verzeichnis kannst du auch per FTP zugreifen.

SSH-Schlüsselpaar erfolgreich erzeugt
SSH-Schlüsselpaar erfolgreich erzeugt

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.

Schluessel nicht autorisiert
Schluessel nicht autorisiert

Über den Link Verwalten kannst du den öffentlichen Schlüssel autorisieren.

Schlüssel autorisieren
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.

cPanel - Anzeige privater Schlüssel
cPanel – Anzeige privater Schlüssel

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

Autor: hagengraf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Ein Gedanke zu „Die Kommandozeile ist nicht totzukriegen :)“

  1. Ich bevorzuge es auch mit der Kommandozeile zu arbeiten. Da ich mittlerweile viele verschiedene Anbieter durchprobiert habe, fällt mir immer mehr auf das der Zugang bzw die SSH-Zugangsdaten immer öfter „Versteckt“ werden, das man meist ersteinmal suchen muss. Ich finde viele Webhoster sollten da mal ihre Strategie überdenken.

Kommentar verfassen