Den eigenen Server zähmen — Teil 2: Einrichtung
Ziehen wir jetzt also unseren Zauberstab und lassen ein wenig Magie walten - oder anders gesagt, lassen wir ein paar Normalsterbliche in Verwunderung staunen, indem wir ein Terminal öffnen. Für die, die es vergessen haben: Unter Windows kann man das mit dem Befehl CMD unten links in der Box neben dem Windows/Start-Knopf… unter Mac Drückt man die Command-Taste + Space Zeitgleich und tippt dann 'Terminal' in das erscheinende Feld. Linux-Benutzer wissen in der Regel, wie sie ein Terminal öffnen ;)
In der Regel sollten jetzt unabhängig vom Anbieter alle Schritte gleich sein und nur die ersten sind Abhängig vom Betriebssystem. Von daher können wir auch davon ausgehen, dass sich SSH auf dem Server befindet und wir uns darüber mit eben selbigen verbinden können.
SSH steht für Secure Shell und wird verwendet:
für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke.
Häufig wird es verwendet, um lokal eine entfernte Kommandozeile verfügbar zu machen, d. h., auf einer lokalen Konsole werden die Ausgaben der entfernten Konsole ausgegeben, und die lokalen Tastatureingaben werden an den entfernten Rechner gesendet.
D.h. unser Terminal (bzw. Rechner) stellt eine sichere Verbindung mit dem Terminal des Servers her. Leider gibt es für alle Personen vor einem Windows Rechner eine kleine Hiobs-Botschaft: SSH ist auf Windows nicht (immer) installiert. Aber auch das lässt sich schnell beheben.
Um SSH zu installieren:
- Auf den Start/Windows Knopf drücken - unten links der;
Ihr wisst, welchen ich meine
- Klicken auf
- Settings Apps
- Apps and Features
- Manage Optional Features
- Nach “OpenSSH Client“ ausschau erhalten
- “Install“ klicken
Das war doch gar nicht mal so schwierig, oder?
Damit es später nicht zu Problemen kommt, wollen wir jetzt noch schnell einen SSH-Key anlegen, den wir später verwenden werden, um uns auf den Server anmelden zu können.
Allgemein reicht die Eingabe von ssh-keygen im Terminal. Zu erst sollen wir den Namen des Schlüssels setzen. Hier kann man einfach 'Enter' drücken, so dass der Name 'id_rsa' verwendet wird. Als nächstes folgt die Aufforderung ein Passwort einzugeben und dieses zu bestätigen - wobei wir dieses sogar noch mit einem leeren Passwort überspringen können - was natürlich nicht empfohlen wird. Mit ssh-keygen -t rsa -b 4096 können wir ein wenig spezifischer sein. Mit dem -t flag sagen wir, dass wir rsa verwenden wollen mit -b, dass wir 4096 Bits verwenden wollen - 2048 werden als default verwendet - hier gilt aber je mehr, desto besser.
Es lohnt sich natürlich, sich weiter mit dem Thema zu befassen und in Erfahrung zu bringen, für was 'dsa', 'ecdsa' oder 'ed25519' stehen und was deren Vorteile sind.
Jetzt wollen wir uns aber endlich auf den Server anmelden. Hierfür müssen wir nur
ssh root@xxx.xxx.xxx.xxx
eingeben. Die xxx.xxx.xxx.xxx steht in diesem Fall natürlich für die IPv4, diese unser Server hat. Wir können hier auch die Domain verwenden, für die wir im 1. Schritt die DNS Einträge vorgenommen haben. Hier kann es aber sein, dass wir bis zu 48 Stunden warten müssen, damit in der Welt bekannt gegeben worden ist, dass diese beiden zusammen gehören. Dieses kann man mit ping xxx.xxx.xxx.xxx testen. Erscheint hier kein 'Unknown host' oder 'cannot resovle', sind die Einträge für unsere Region schon vorgenommen - in anderen Ländern und Städten können diese aber evt. noch mal fehlen.
Wir sollten jetzt folgende Meldung erhalten:
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:0/DKjoMw1Cc7ZxLEVj6KBCuETKcuoDu4acVN4x20MgM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Klar - hier sollte wieder Eure IP angezeigt werden und bei Euch steht etwas anderes hinter SHA256 und zwar ein Eintrag, der nach der Installation angezeigt worden ist. Hiermit könnt ihr sicherstellen, dass kein böser Hacker gerade versucht, euer Passwort zu stehlen. Bestätigen könnt ihr das dann mit 'yes'.
Was noch passieren könnte, ist eine andere Anzeige
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:gDX7Q091OxUmdV35QuMwz20AEOq0wOF88cLpjjJboSM.
Please contact your system administrator.
Hier jetzt nicht in Panik verfallen. Was wahrscheinlich passiert ist kann damit erklärt werden, dass ihr im Tutorial nicht weiter gekommen seit und noch mal gestartet seit. Die Meldung weißt einfach darauf hin, dass es für unsere IP oder Domain schon einen Eintrag gibt. Bei jeder Installation (Schritt 1) wird der SSH-Fingerprint neu gebildet und unterscheidet sich. Da sich also der vom ersten mal Installieren mit dem vom zweiten mal unterscheidet, meckert Euer System jetzt also berechtigter Weise.
In diesem Fall geht ihr im Terminal in euren Benutzer-Verzeichnis. Auf Unix (also Linux und Mac) ist das der ~ Ordner in den ihr auch einfach mit cd ~ wechseln könnt, wenn ihr da nicht schon seit. In der Regel befindet man sich an diesem Ort, wenn man ein Terminal öffnet.
Unter Windows müsst ihr mit cd C:/Users/EurenBenutzerName in Euren Ordner wechseln - leider kenne ich den nicht und kann daher nicht den vollständigen Befehl schreiben. Im Zweifel mit cd C:/Users in den übergeordneten Ordner wechseln und mit dir mal gucken, welche Einträge es gibt.
Wenn ihr im Benutzerordner seit (egal welches OS), dann wechselt mit cd .ssh in einen 'geheimen Ordner' - stellt euch bitte jetzt ein kleines Orchester or welches ein 'Dun dun dun' erklingen lässt ;)
Ordner die mit . Anfangen werden in der Regel ausgeblendet, d.h. wenn man dir bzw ls im Terminal verwendet, werden diese Ordner nicht mit angezeigt. Wollt ihr diese sehen, müsst ihr die Befehle mit entsprechenden Flags erweitern dir /a:hd bzw. ls -lah (Die Befehle schießen jetzt über das Ziel hinaus, weil sie noch mehr machen).
In diesem Ordner gibt es die Datei known_hosts. Diese können wir Editieren und die entsprechende Zeile löschen. Wichtig: Es könnten zwei sein, ein mal für die IP und ein mal für die Domain.
Eine weitere Möglichkeit ist der Befehle ssh-keygen -R hostname|IP. Wo ihr natürlich entweder die Domain oder die IP hinter das -R setzt.
Wenn die Einträge gelöscht worden sind sollte bei nächsten Versuch, sich mit ssh auf den Server zu verbinden die Meldung mit dem neuen fingerprint erscheinen.