SSH (Secure Shell) ist ein kryptografisches Netzwerkprotokoll, das eine sichere, verschlüsselte Verbindung zwischen Client und Server ermöglicht. Es wird hauptsächlich zur Remote-Administration von Linux- und Unix-Systemen eingesetzt. Eine der sichersten Methoden zur Anmeldung ist die Public-Key-Authentifizierung, da sie Brute-Force-Angriffe und Passwortdiebstahl effektiv verhindert.
Public-Key-Authentifizierung
- Jeder Benutzer verwendet ein Schlüsselpaar bestehend aus:
Privatem Schlüssel (geheim, nur lokal gespeichert) und öffentlichem Schlüssel (wird auf dem Server hinterlegt). - Der öffentliche Schlüssel wird auf dem Server im Benutzerverzeichnis abgelegt.
- Der private Schlüssel verbleibt ausschließlich auf dem lokalen System des Benutzers.
- Bei der Anmeldung sendet der Server eine Challenge, die nur mit dem privaten Schlüssel entschlüsselt werden kann. Dadurch wird die Identität des Benutzers sicher bestätigt.
SSH-Schlüsselpaar erzeugen
Zur Erstellung eines Schlüsselpaares kann unter Windows PuTTYgen oder unter Linux das Tool ssh-keygen verwendet werden.
ssh-keygen -t rsa -b 4096- ssh-keygen generiert und verwaltet SSH-Schlüsselpaare.
- Standardmäßig wird RSA mit 2048 Bit verwendet.
Empfehlung: RSA 4096 Bit für erhöhte Sicherheit. - Nach dem Generieren sollte der private Schlüssel mit einem sicheren Passwort geschützt werden.
- Der öffentliche Schlüssel wird in /home/<USER>/.ssh/authorized_keys gespeichert.
SSH-Härtung: Root-Login deaktivieren & Benutzerzugriff absichern
Um die SSH-Sicherheit deutlich zu erhöhen, sollten der direkte Root‑Login deaktiviert und der Zugriff auf definierte Benutzer beschränkt werden. Diese Maßnahmen gehören zu den wichtigsten Best Practices für sichere Serveradministration.
Direkten Root-Login deaktivieren
Die zentrale Einstellung befindet sich in der Datei /etc/ssh/sshd_config:
PermitRootLogin noDamit wird verhindert, dass sich Angreifer direkt als Root anmelden können. Administratoren melden sich stattdessen mit einem normalen Benutzer an und wechseln anschließend über sudo oder su zu Root.
SSH-Zugriff mit AllowUsers einschränken
Mit der Direktive AllowUsers lässt sich exakt definieren, welche Benutzer sich per SSH anmelden dürfen:
AllowUsers adminuser backupuserAlle nicht aufgeführten Konten – einschließlich System- und Dienstkonten – werden automatisch blockiert. Dies reduziert die Angriffsfläche erheblich und verhindert ungewollte Loginversuche.
Weitere sicherheitsrelevante Einstellungen
LoginGraceTime – Zeitfenster für die Passworteingabe:
LoginGraceTime 20SSH-Port ändern – erschwert einfache Scanner:
Port 2222SSH-Dienst neu starten & Konfiguration testen
Nach Änderungen an der sshd_config muss der SSH-Dienst neu gestartet werden:
/etc/init.d/ssh restartDanach sollte geprüft werden, ob:
- der Root‑Login korrekt blockiert wird,
- die definierten Benutzer weiterhin Zugriff haben,
- die AllowUsers‑Regeln wie erwartet greifen.
Vorteile dieser Sicherheitsmaßnahmen
Das Deaktivieren des Root‑Logins und die Einschränkung auf bestimmte Benutzer gehören zu den effektivsten Methoden, um einen SSH‑Server abzusichern. Sie erschweren automatisierte Angriffe, verhindern direkten Root‑Zugriff und sorgen dafür, dass Angreifer selbst bei kompromittierten Zugangsdaten zusätzliche Hürden überwinden müssten.
