Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Modul 1 · 1.3

Der erste SSH-Login

Modul 1: Ihr erster Server · Lesezeit: 10 Minuten

Lernziel: Nach dieser Lektion können Sie sich zum ersten Mal per SSH auf Ihrem Server anmelden, den Fingerabdruck des Servers prüfen, bevor Sie ihm vertrauen, und Sie wissen, was zu tun ist, wenn die Warnung erscheint, dass sich die Identität des Servers geändert hat.

Kernbegriffe: SSH, Client und Server, Port 22, Versionsbanner, Host Key, Fingerabdruck (SHA256), known_hosts, Trust on First Use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell und Terminal

Was SSH ist

SSH (Secure Shell) ist die verschlüsselte Verbindung, mit der Sie einen Server aus der Ferne verwalten. Sie tippen auf Ihrem eigenen Computer, die Befehle werden auf dem Server ausgeführt. Alles, was über die Leitung geht, auch Ihr Passwort, ist verschlüsselt.

Es gibt zwei Seiten:

  • den SSH-Client auf Ihrem eigenen Computer: das Programm ssh. Unter macOS und Linux ist es standardmäßig dabei. Unter Windows 10 (ab Version 1809) und Windows 11 ist der OpenSSH-Client ein Bestandteil von Windows; Sie verwenden ihn in PowerShell oder Windows Terminal. Fehlt er, fügen Sie ihn über Einstellungen, Optionale Features, "OpenSSH-Client" hinzu. Programme mit Fenstern wie PuTTY funktionieren ebenfalls, in diesem Kurs verwenden wir jedoch ssh.
  • den SSH-Server auf dem VPS: das Programm sshd (von OpenSSH). Es lauscht standardmäßig auf Port 22.

Anmelden

Sie melden sich mit einem Benutzernamen und der Adresse des Servers an:

PS C:\Users\anna> ssh root@192.0.2.10

Oder mit einem Namen, wenn Sie diesen im DNS eingetragen haben (Lektion 7.1):

anna@laptop:~$ ssh root@web1.example.com

Beim ersten Mal sehen Sie etwa Folgendes:

The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Das ist der wichtigste Moment dieser Lektion. Tippen Sie nicht blind yes.

Der Host Key und der Fingerabdruck

Jeder SSH-Server hat einen oder mehrere Host Keys: Schlüsselpaare, mit denen der Server beweist, wer er ist. Die öffentlichen Teile liegen auf dem Server in /etc/ssh/, zum Beispiel /etc/ssh/ssh_host_ed25519_key.pub. Bei jeder Verbindung zeigt der Server, dass er den geheimen Teil besitzt.

Ein Fingerabdruck ist eine kurze Zusammenfassung (ein Hash) eines solchen öffentlichen Schlüssels. OpenSSH zeigt standardmäßig die SHA256-Form: SHA256:, gefolgt von 43 Zeichen.

Die Frage "Are you sure you want to continue connecting?" bedeutet: Ihr Computer kennt diesen Server noch nicht. Wer garantiert, dass Sie mit Ihrem VPS sprechen und nicht mit jemandem, der den Datenverkehr abfängt? Niemand, es sei denn, Sie vergleichen den Fingerabdruck mit einer vertrauenswürdigen Quelle.

Diese Quelle ist die Konsole Ihres Anbieters (Lektion 1.2). Dort sprechen Sie nicht über das Netzwerk mit dem Server. Melden Sie sich in der Konsole an und fragen Sie den Fingerabdruck ab:

root@web1:~# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs root@web1 (ED25519)

Stimmt das genau mit dem überein, was der Client anzeigt, tippen Sie yes. Sie können statt yes auch den Fingerabdruck selbst einfügen; dann vergleicht ssh ihn für Sie. Weicht er ab, brechen Sie ab und finden heraus, warum (falsche IP-Adresse, Server neu installiert oder etwas Ernsteres).

Achten Sie auf den Typ: Der Client nennt den Typ (ED25519, ECDSA oder RSA). Vergleichen Sie den Fingerabdruck desselben Typs. Viele Images geben die Fingerabdrücke beim ersten Start auch in der Konsole aus (cloud-init), zwischen Zeilen wie BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts und Trust on First Use

Tippen Sie yes, sehen Sie:

Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.

Der Client speichert den Schlüssel in ~/.ssh/known_hosts (unter Windows C:\Users\<naam>\.ssh\known_hosts). Ab jetzt vergleicht er bei jeder Verbindung automatisch. Dieses Modell heißt Trust on First Use (TOFU): Beim ersten Mal müssen Sie selbst prüfen, danach überwacht der Client das.

Deshalb ist diese erste Prüfung so wichtig: Vertrauen Sie einem falschen Schlüssel, warnt der Client danach nie wieder.

Arbeiten Sie selbst auf einem Computer mit Debian oder Ubuntu, sind die Namen in known_hosts standardmäßig gehasht (HashKnownHosts yes in /etc/ssh/ssh_config), Sie sehen dort also keine lesbaren IP-Adressen. Unter Windows und macOS stehen sie lesbar darin. Suchen funktioniert überall mit:

anna@laptop:~$ ssh-keygen -F 192.0.2.10
# Host 192.0.2.10 found: line 3
|1|kP9...= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

"REMOTE HOST IDENTIFICATION HAS CHANGED"

Manchmal sehen Sie diese Warnung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Host key verification failed.

Der Server zeigt einen anderen Schlüssel, als Ihr Client kennt. ssh verweigert dann die Verbindung. Es gibt zwei Arten von Ursachen:

NormalVerdächtig
Sie haben den VPS neu installiert (neue Host Keys)Sie haben nichts geändert, und trotzdem ist der Schlüssel anders
Die IP-Adresse wurde einem anderen Server zugewiesenSie sind in einem fremden WLAN
Sie haben die Host Keys bewusst ersetztDer Fingerabdruck in der Konsole weicht von dem ab, was der Client jetzt sieht

Gibt es eine normale Erklärung, prüfen Sie erneut den Fingerabdruck in der Konsole und entfernen erst danach die alte Zeile:

anna@laptop:~$ ssh-keygen -R 192.0.2.10
# Host 192.0.2.10 found: line 3
/home/anna/.ssh/known_hosts updated.

Bei der nächsten Verbindung erhalten Sie wieder die Frage vom ersten Mal und prüfen erneut. Setzen Sie nie StrictHostKeyChecking no in Ihren Einstellungen, um die Warnung loszuwerden: Damit schalten Sie genau den Schutz ab, um den es geht.

Das Versionsbanner

Bevor irgendetwas verschlüsselt wird, schicken sich Client und Server eine Textzeile: das Versionsbanner. Es ist für jeden im Internet sichtbar. Sie sehen es mit ssh -v:

anna@laptop:~$ ssh -v root@192.0.2.10 2>&1 | grep "remote software"
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

Der Server sagt hier, welches Protokoll (2.0) und welche Software er verwendet. Debian und Ubuntu hängen die Paketversion an. Das ist kein Geheimnis, das Sie verbergen müssen: Angreifer probieren ohnehin alles aus, und Sie schützen sich mit Updates (Modul 4), nicht mit einem anderen Banner. Praktisch ist aber: Am Banner sehen Sie von außen, ob Ihr Server wirklich die aktualisierte Version ausführt.

Unter AlmaLinux und Rocky Linux

Anmelden und Fingerabdrücke funktionieren genauso. Der Dienst heißt sshd statt ssh (systemctl status sshd). Das Banner enthält keinen Distributionsnamen, nur die OpenSSH-Version.

Zusammenfassung

  • SSH ist die verschlüsselte Verbindung zu Ihrem Server; ssh ist der Client, sshd der Server auf Port 22.
  • Bei der ersten Verbindung zeigt der Client den Fingerabdruck des Host Keys. Vergleichen Sie ihn mit der Ausgabe von ssh-keygen -lf in der Konsole, bevor Sie yes tippen.
  • Der Client speichert den Schlüssel in ~/.ssh/known_hosts und warnt künftig selbst (Trust on First Use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" ist nach einer Neuinstallation normal, sonst verdächtig. Entfernen Sie eine alte Zeile nur nach einer Prüfung, mit ssh-keygen -R.
  • Das Versionsbanner ist öffentlich; Schutz kommt von Updates, nicht vom Verbergen.

Quiz

1. Womit vergleichen Sie den Fingerabdruck, den ssh bei der ersten Verbindung anzeigt?



2. Was macht ~/.ssh/known_hosts?



3. Sie haben Ihren VPS neu installiert und erhalten "REMOTE HOST IDENTIFICATION HAS CHANGED". Was ist die richtige Reihenfolge?



4. Warum ist die erste Prüfung bei Trust on First Use so wichtig?



5. Was zeigt das Versionsbanner eines SSH-Servers?



Aufgabe

Aufgabe Z1.3: SSH-Banner und Fingerabdruck Ihres Servers. Geben Sie die Adresse Ihres Servers ein, die Softwareversion aus dem Banner (etwa OpenSSH_9.6p1) und den ED25519-Fingerabdruck, den Sie in der Konsole mit ssh-keygen -lf abgefragt haben. Das Programm stellt eine einzige Verbindung zu Ihrem SSH-Port her, liest das Banner und den Host Key und vergleicht. Es meldet sich nicht an.

Aufgabe Z1.3: SSH-Banner und Fingerabdruck Ihres Servers

Wir melden uns nicht an und probieren kein Passwort und keinen Schlüssel aus. Zuerst zeigen Sie, dass der Server Ihnen gehört: Klicken Sie auf „Meinen Code anzeigen“ und legen Sie eine Datei /.well-known/weboke-cursus-<code>.txt mit nur diesem Code auf dem Webserver Ihres Hostnamens ab. Wir rufen sie direkt bei jeder IP-Adresse ab, die wir prüfen (IPv4 und IPv6 getrennt); ein TXT-Record zählt hier nicht. Die Prüfung kommt von heavy.webawere.nl (185.158.167.16 und 2a07:ae80:100:0:185:158:167:16), nicht von unserem Webserver. Nur für angemeldete Kursteilnehmer; pro Server höchstens 6 Prüfungen pro Stunde. Bei dieser Aufgabe bauen wir eine Verbindung auf und lesen nur das Banner und den Schlüssel des Servers; in Ihrem Log erscheint kein Anmeldeversuch.





Was Sie eingeben und was wir finden, speichern wir nicht. Ihr Browser merkt sich Ihre Antworten und ob Sie die Aufgabe bestanden haben. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe (fast) richtig hatten; auch das können Sie dort löschen.

Weiterführende Informationen

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…