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.
Zur Erstellung eines Schlüsselpaares kann unter Windows PuTTYgen oder unter Linux das Tool ssh-keygen verwendet werden.
ssh-keygen -t rsa -b 4096
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.
Die zentrale Einstellung befindet sich in der Datei /etc/ssh/sshd_config:
PermitRootLogin no
Damit 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.
Mit der Direktive AllowUsers lässt sich exakt definieren, welche Benutzer sich per SSH anmelden dürfen:
AllowUsers adminuser backupuser
Alle nicht aufgeführten Konten – einschließlich System- und Dienstkonten – werden automatisch blockiert. Dies reduziert die Angriffsfläche erheblich und verhindert ungewollte Loginversuche.
LoginGraceTime – Zeitfenster für die Passworteingabe:
LoginGraceTime 20
SSH-Port ändern – erschwert einfache Scanner:
Port 2222
Nach Änderungen an der sshd_config muss der SSH-Dienst neu gestartet werden:
/etc/init.d/ssh restart
Danach sollte geprüft werden, ob:
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.