SSH-Port ändern, ohne sich auszusperren

Lassen Sie Ihre Sitzung offen. Öffnen Sie den neuen Port in der Firewall, tragen Sie Port 22 und Port 2222 in die sshd-Konfiguration ein und wenden Sie sie an. Unter aktuellem Ubuntu heißt das sudo systemctl daemon-reload und sudo systemctl restart ssh.socket. Testen Sie ssh -p 2222 user@server in einem neuen Terminal und entfernen Sie dann Port 22. Das verringert Log-Rauschen, keine echten Angriffe.

Den Port nicht jedes Mal eintippen? Wardterm speichert ihn mit jedem Server. Zeigen

Aktualisiert am . Das ganze Verfahren wurde unter Ubuntu 24.04 und 26.04 (Socket und ufw), Debian 13 (Dienst) und Rocky Linux 9 (firewalld) ausgeführt, jeweils in Wegwerf-Containern mit systemd.

Was es schützt und was nicht

Ein neuer Port stoppt die automatischen Scans, die nur Port 22 probieren, Ihre Logs werden also deutlich ruhiger. Das ist der ganze Nutzen. Ein Scan aller Ports findet SSH trotzdem, denn der Server meldet sich, sobald sich etwas verbindet. Schwache Passwörter bleiben auf jedem Port schwach. Erledigen Sie zuerst, was wirklich zählt: Passwort-Anmeldung abschalten und die sshd-Konfiguration prüfen.

Es hat auch kleine Kosten: Jedes Werkzeug braucht jetzt den Port, und Ihre known_hosts behandelt den neuen Port als neuen Eintrag, Sie bestätigen den Fingerabdruck also erneut.

Wählen Sie einen Port, den nichts anderes benutzt. Ports unter 1024 kann nur Root öffnen, was ein kleiner Vorteil ist, falls sshd je ausfällt.

1. Einen Rückweg offen halten

Lassen Sie Ihre aktuelle Sitzung bis zum letzten Schritt offen. Eine bestehende Sitzung überlebt einen Neustart von sshd normalerweise, sie ist also Ihr Rückweg. Wenn Sie über Ihren Anbieter eine Konsole erreichen können, suchen Sie sie, bevor Sie anfangen.

2. Zuerst den neuen Port öffnen

Mit ufw:

sudo ufw allow 2222/tcp

Mit firewalld, auf RHEL, Rocky, AlmaLinux und Fedora:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

Ein Cloud-Server hat meist auch eine Firewall oder Sicherheitsgruppe im Panel des Anbieters. Öffnen Sie den Port auch dort. Das ist der häufigste Grund für ein Timeout nach dieser Änderung.

SELinux

Auf Systemen der RHEL-Familie mit SELinux im Enforcing-Modus kann sshd einen neuen Port erst nutzen, wenn Sie ihn beschriften. Die Standard-sshd_config dieser Systeme weist ebenfalls darauf hin. Prüfen Sie, dann fügen Sie das Label hinzu:

getenforce
sudo semanage port -a -t ssh_port_t -p tcp 2222
sudo semanage port -l | grep ssh

Wenn getenforce Disabled sagt, überspringen Sie das. In diesem Zustand scheitert semanage mit SELinux policy is not managed or store cannot be accessed, was harmlos ist. Fehlt semanage, steckt es im Paket policycoreutils-python-utils.

3. Den neuen Port neben den alten setzen

Ersetzen Sie den alten Port noch nicht. Legen Sie eine kleine Datei an, die die Hauptkonfiguration unberührt lässt:

printf 'Port 22\nPort 2222\n' | sudo tee /etc/ssh/sshd_config.d/10-port.conf
sudo sshd -t

Gibt sshd -t nichts aus, ist die Syntax gültig. Ältere Systeme ohne diesen Ordner brauchen dieselben zwei Zeilen in /etc/ssh/sshd_config.

4. Anwenden: Das hängt vom System ab

Fragen Sie zuerst, in welchem Fall Sie sind:

systemctl is-active ssh.socket

Es sagt active (Ubuntu 24.04 und 26.04 standardmäßig). Der Socket hält den Port und wird aus Ihrer Konfiguration erzeugt, ein Neustart des Dienstes genügt also nicht:

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

Das ist die übliche Falle. In unserem Test ließ allein sudo systemctl restart ssh die alten Ports lauschen und meldete keinen Fehler.

Es sagt inactive (Debian, Ubuntu 22.04):

sudo systemctl restart ssh

RHEL-Familie, wo der Dienst anders heißt:

sudo systemctl restart sshd

Ubuntu 22.10 bis 23.10 nutzten den Socket anders und werden nicht mehr unterstützt. Prüfen Sie dort systemctl cat ssh.socket, bevor Sie sich auf diese Schritte verlassen.

Prüfen Sie nun, dass beide Ports lauschen:

ss -tln | grep -E ':(22|2222)\b'

5. Aus einem neuen Terminal testen

Lassen Sie die alte Sitzung offen und führen Sie von Ihrem eigenen Rechner aus Folgendes aus:

ssh -p 2222 user@server

Ein Timeout heißt, eine Firewall steht noch im Weg. Connection refused heißt, es lauscht nichts, oder SELinux hat sshd am Binden gehindert. Beheben Sie das jetzt, solange Port 22 noch funktioniert.

6. Port 22 schließen

Erst wenn der Test funktioniert:

echo 'Port 2222' | sudo tee /etc/ssh/sshd_config.d/10-port.conf
sudo sshd -t

Hat die Haupt-/etc/ssh/sshd_config eine nicht auskommentierte Zeile Port 22, kommentieren Sie auch diese aus, sonst lauscht sshd weiter dort. Wenden Sie es wie in Schritt 4 an, bestätigen Sie mit sudo sshd -T | grep -i ^port und entfernen Sie dann die alte Firewall-Regel, je nachdem, was zutrifft:

sudo ufw delete allow 22/tcp
sudo ufw delete allow OpenSSH
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

Testen Sie noch einmal in einem neuen Terminal und schließen Sie erst dann die alte Sitzung.

Den Client anpassen

Speichern Sie den Port, damit Sie ihn nicht mehr tippen müssen:

Host server
    HostName 203.0.113.10
    Port 2222
    User user

Weitere Einstellungen pro Host finden Sie in diesen Beispielen für die ssh-config-Datei.

Beachten Sie, dass scp für den Port ein großes -P verwendet, anders als ssh. Wenn Sie fail2ban einsetzen, teilen Sie ihm den neuen Port ebenfalls mit. Siehe fail2ban für SSH.

Fragen

Lohnt es sich, den SSH-Port zu ändern?

Es verringert das Rauschen durch Bots, die nur Port 22 probieren. Gegen einen gezielten Angriff hilft es nicht: Anmeldung nur mit Schlüssel und ein aktueller Server zählen mehr.

Warum funktioniert der neue SSH-Port unter Ubuntu 24.04 nicht?

Ubuntu 24.04 startet sshd über ssh.socket. Führen Sie nach der Änderung von Port sudo systemctl daemon-reload und sudo systemctl restart ssh.socket aus und prüfen Sie mit ss -tln.

Wie verbinde ich mich per SSH mit einem anderen Port?

Mit ssh -p 2222 benutzer@server, oder Sie tragen Port 2222 unter dem Host-Eintrag des Servers in ~/.ssh/config ein. scp erwartet den Port mit großem -P.

Quellen

Mehr zu Server absichern

Alle Anleitungen