SSH Verbindung zum Server aufbauen
Es wird spannend! Wir starten gleich die erste Verbindung zu unserem frisch aufgesetztem Linux Server.
Im vorherigen Kapitel haben wir einen Cloud Server gemietet, Ubuntu Linux als Betriebssystem installiert und eine Domain registriert. Jetzt wartet der Server auf eine SSH Verbindung.
Das Ziel dieses Kapitels ist es über ein Terminal eine SSH Verbindung aufzubauen.
Für die SSH Verbindung brauchen wir folgende Server Daten:
Die Authentifizierungsmethode auf dem Server ist aktuell eine passwortbasierte. Eine schlüsselbasierte Methode werden wir später einrichten (Authentifizierung mit einem Private-Key).
Für die SSH Verbindung brauchen wir folgende Server Daten:
Erklärung zu SSH und OpenSSH
SSH (Secure Shell) ist ein Netzwerkprotokoll. OpenSSH hingegen, ist ein Programmpaket mit einem Dienst zur Authentifizierung und Kommunikation, Dienste für die Dateiübertragung (SFTP und SCP) sowie Tools, um private und öffentliche Schlüssel zu erzeugen.
Ein SSH Serverdienst läuft also auf dem Server. Standardmäßig ist er auf den Port 22 eingestellt. Der lokale Rechner braucht zum Verbinden einen SSH Klienten (zum Beispiel OpenSSH), um sich über das SSH Protokoll authentifizieren zu können. Dank des SSH-Protokolls findet die Kommunikation immer verschlüsselt statt.
Unterschied Cloud Server zu Shared Hosting
Im Gegensatz zum Shared Hosting, wo lediglich Zugriff auf den Webspace und Web-Account erlaubt ist, greifen wir bei unserem Server auf eine Unix-Shell (Kommandozeileninterpreter) zu und erlangen dadurch Kontrolle über das Betriebssystem. Die Standard Kommandozeile unter Ubuntu ist die Bash. Das erlaubt uns einerseits alles installieren zu können (fast ohne Einschränkungen), andererseits verpflichtetet das auch, alles selbst zu erledigen. Aber mal ehrlich: wie viele Features die in einem Shared-Hosting-Paket inklusive sind werden wirklich benutzt?! Ich würde sagen: Zugriff zum Webspace und zur Datenbank, ein paar Domains und Subdomains konfigurieren, ein paar E-Mail Aliase weiterleiten ... vielleicht noch Cronjobs ... alles andere ist eigentlich nur Marketing vom Hoster.
Mit Zugriff auf die Kommandozeile kommen ganz neue Technologien in Betracht. Nur so lassen sich Software-Plattformen wie zum Beispiel Node.js, Python oder .NET ausführen. Oder Paketmanager wie npm, pip oder Composer.
Bei beiden Hosting Varianten ist der Workflow der Webentwicklung ziemlich gleich. Dateien können über SFTP transferiert werden. Editoren und IDEs verbinden sich über SSH. Allerdings ein ganz wichtiger Vorteil beim eigenen Server, die Möglichkeit eine Versionsverwaltung einsetzen zu können, wie zum Beispiel Git.