Inhaltsverzeichnis

SSH – Secure Shell

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

  1. Jeder Benutzer verwendet ein Schlüsselpaar bestehend aus:
    Privatem Schlüssel (geheim, nur lokal gespeichert) und öffentlichem Schlüssel (wird auf dem Server hinterlegt).
  2. Der öffentliche Schlüssel wird auf dem Server im Benutzerverzeichnis abgelegt.
  3. Der private Schlüssel verbleibt ausschließlich auf dem lokalen System des Benutzers.
  4. 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
  1. ssh-keygen generiert und verwaltet SSH-Schlüsselpaare.
  2. Standardmäßig wird RSA mit 2048 Bit verwendet.
    Empfehlung: RSA 4096 Bit für erhöhte Sicherheit.
  3. Nach dem Generieren sollte der private Schlüssel mit einem sicheren Passwort geschützt werden.
  4. 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 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.

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 backupuser

Alle 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 20

SSH-Port ändern – erschwert einfache Scanner:

Port 2222

SSH-Dienst neu starten & Konfiguration testen

Nach Änderungen an der sshd_config muss der SSH-Dienst neu gestartet werden:

/etc/init.d/ssh restart

Danach sollte geprüft werden, ob:

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.