1 🔑 ssh (Secure Shell)
Der Befehl ssh steht für Secure Shell.
Es ist sowohl der Name des Protokolls als auch des dazugehörigen Terminal-Werkzeugs (meist implementiert über das quelloffene OpenSSH). ssh ersetzt das uralte, unsichere Telnet- oder rsh-Verfahren, bei dem Passwörter im Klartext durchs Netzwerk flogen. Jede Eingabe, jeder Befehl und jede Server-Antwort wird bei ssh bombenfest verschlüsselt übertragen.
2 🔑 SSH (Die Krypto-Verbindung im Detail)
2.1 🔬 DIE PHILOSOPHIE: SICHERHEIT DURCH ASYMMETRISCHE KRYPTOGRAFIE
Die Philosophie von SSH basiert auf dem Prinzip des Vertrauens ohne Geheimnisverrat. Bevor überhaupt das erste Byte deines Passworts oder Befehls übertragen wird, handeln Client und Server einen hochsicheren, symmetrischen Verschlüsselungs-Tunnel aus.
Noch mächtiger wird das System, wenn man vom klassischen Passwort auf das Key-Based-Authentication-Verfahren (Public-Key-Verfahren) umstellt. Hierbei erzeugt man ein Schlüsselpaar:
- Der Private Key (Privater Schlüssel):
Bleibt wie dein physischer Haustürschlüssel immer sicher auf deiner lokalen SSD (z. B. auf deinem Arch- oder Debian-Arbeitsplatz). Er darf niemals weitergegeben werden! - Der Public Key (Öffentlicher Schlüssel):
Das dazugehörige „Schloss“. Dieser Textauschnitt wird auf allen entfernten Servern hinterlegt.
2.2 ⚙️ DIE KERN-WERKZEUGE DES OPENSSH-PAKETS
Das SSH-Ökosystem besteht aus mehreren spezialisierten Einzelwerkzeugen:
- ssh: Der eigentliche Client, um die interaktive Shell auf dem entfernten Server zu öffnen.
- sshd: Der SSH-Daemon (Server-Dienst), der im Hintergrund des Ziel-PCs läuft und auf eingehende Verbindungen wartet.
- ssh-keygen: Das Werkzeug zum Erstellen der Krypto-Schlüssel.
- ssh-copy-id: Der eleganteste Befehl, um deinen öffentlichen Schlüssel auf einen neuen Server zu schubsen.
- scp / sftp: Protokoll-Erweiterungen für den sicheren Dateitransfer.
2.3 📦 PRAKTISCHE ANWENDUNG & TERMINAL-BEFEHLE
Die wichtigsten Praxis-Beispiele für den Support-Alltag:
2.3.1 1. Die klassische Verbindung (Mit Passwort)
Verbindung zum Mini-PC im Heimnetzwerk aufbauen (nutzt standardmäßig Port 22):
2.3.2 2. Auf Key-Authentifizierung umstellen (Der Sicherheits-Booster)
Schritt A: Ein hochmodernes, extrem sicheres Ed25519-Schlüsselpaar auf dem lokalen PC generieren:
Schritt B: Den öffentlichen Schlüssel auf den entfernten Server übertragen (erfragt ein letztes Mal das Server-Passwort):
(Ab jetzt loggst du dich blitzschnell ohne Passwort ein – rein über den Krypto-Schlüssel!)
2.3.3 3. Die lokale SSH-Konfiguration nutzen (~/.ssh/config)
Erstelle auf deinem lokalen PC die Datei nano ~/.ssh/config mit folgendem Inhalt:
Host heimserver
HostName 192.168.1.100
User deinusername
Port 22
IdentityFile ~/.ssh/id_ed25519
Ab jetzt reicht im Terminal ein federleichtes:
3 🛡️ HÄRTUNG DES SERVERS: DIE SSHe-DIÄT FÜR DIE /etc/ssh/sshd_config
Wenn man einen Server direkt ins Internet stellt (z. B. über eine Portweiterleitung im Router oder einen VPS), hämmern innerhalb von Minuten automatisierte Bots auf Port 22 ein.
Um den Server abzusichern, editiert man als Root die Datei /etc/ssh/sshd_config auf dem Server und setzt diese drei eisernen Sicherheits-Regeln um:
# 1. Den Standard-Port von 22 auf einen fünfstelligen Random-Port ändern (reduziert Bot-Anfragen um 99%)
Port 54321
# 2. Dem Root-User den direkten Login verbieten (Angreifer müssen erst den Usernamen erraten)
PermitRootLogin no
# 3. Klassische Passwort-Abfragen komplett abschalten (Login NUR noch via Krypto-Key erlaubt!)
PasswordAuthentication no
Danach den Dienst neu starten nicht vergessen: sudo systemctl restart sshd (oder ssh unter Debian).
4 ⚠️ DER HÄUFIGSTE SCHRECKMOMENT
4.1 🚨 „WARNUNG: REMOTE HOST IDENTIFICATION HAS CHANGED!“
Fehlermeldung, die mit „IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!“ droht. Das kann den Eindruck erwecken als wurde man gehackt.
- Die Ursache:
SSH merkt sich den krypto-fingerabdruck des Servers in der lokalen Datei ~/.known_hosts. Wenn der Nutzer den Server frisch neu aufgesetzt hat (z. B. neu installiert) oder der Server eine neue IP bekommen hat, stimmt der Fingerabdruck nicht mehr überein. SSH blockiert die Verbindung zum Schutz vor einer Man-in-the-Middle-Attacke. Die Entwarnung:
Wenn man weiß, dass manden Server selbst neu aufgesetzt hat, kann er den alten, ungültigen Schlüssel mit einem einzigen Befehl aus seiner lokalen Liste werfen:Beim nächsten Verbindungsaufbau fragt SSH wieder ganz normal, ob man dem neuen Schlüssel vertrauen möchte.
5 📝 FAZIT
SSH ist das mächtigste Schweizer Taschenmesser für Admins. Über SSH kann man nicht nur Befehle tippen, sondern via Port-Forwarding (ssh -L) auch lokale Web-Oberflächen von Docker-Containern verschlüsselt durch den Tunnel auf den eigenen Desktop holen.