
SSH-Härtung
SSH auf Debian/Ubuntu in einem Durchgang absichern: neuer Port, kein Root-Login, schlüsselbasierte Authentifizierung, optional UFW und Fail2Ban.
Wenn Sie das Skript ausführen, erkennt es Ihr Betriebssystem und zeigt die Einstellungen an, bevor es fragt, ob Sie fortfahren möchten:

Auf Debian/Ubuntu:
sudo apt-get install -y git
rm -rf ssh-hardening
git clone https://github.com/spookey007/ssh-hardening.git
cd ssh-hardening
Führen Sie dies jederzeit aus, wenn Sie das neueste Skript möchten.
chmod +x ssh_harden.sh script.sh
Wenn Sie dies überspringen, erhalten Sie möglicherweise "Befehl nicht gefunden" beim Ausführen von ./ssh_harden.sh. Falls das passiert, verwenden Sie stattdessen Schritt 5 mit sudo bash ssh_harden.sh.
SSH_PUB_KEY)Linux / macOS
ssh-keygen -t ed25519 -C "[email protected]"
Drücken Sie die Eingabetaste für den Standardpfad (~/.ssh/id_ed25519). Optional: Eine Passphrase festlegen.
Zeigen Sie Ihren öffentlichen Schlüssel an (kopieren Sie diesen in SSH_PUB_KEY):
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell oder Git Bash)
ssh-keygen -t ed25519 -C "[email protected]"
Drücken Sie die Eingabetaste für den Standardpfad. Optional: Eine Passphrase festlegen.
Zeigen Sie Ihren öffentlichen Schlüssel an:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubtype %USERPROFILE%\.ssh\id_ed25519.pubKopieren Sie die gesamte Zeile (beginnt mit ssh-ed25519 ...). Das ist Ihr SSH_PUB_KEY.
Ersetzen Sie die Werte durch Ihre eigenen und führen Sie dann aus:
sudo SSH_USER=kamaileo \
SSH_PASS='YourStrongPassword123!' \
SSH_PORT=49221 \
PORTS="5060,5061,10000-20000" \
SSH_PUB_KEY="ssh-ed25519 AAAA... you@yourmachine" \
./ssh_harden.sh
Falls Sie "Befehl nicht gefunden" erhalten, verwenden Sie:
sudo bash ssh_harden.sh
(mit denselben SSH_USER=... SSH_PASS=... usw. davor).
Öffnen Sie ein neues Terminal und verbinden Sie sich mit dem neuen Port (nicht 22):
ssh -p 49221 kamaileo@YOUR_SERVER_IP
Verwenden Sie den von Ihnen eingestellten Port und Benutzer. Schließen Sie die ursprüngliche Sitzung erst, nachdem Sie bestätigt haben, dass die Anmeldung und sudo funktionieren.
Verwenden Sie immer den neuen Port. Nach der Härtung läuft SSH nicht mehr auf Port 22. Verbinden Sie sich immer mit:
ssh -p <IHR_PORT> <BENUTZER>@<SERVER_IP>
Beispiel: ssh -p 49221 [email protected]
Speichern Sie die Skriptausgabe, wenn es beendet ist. Am Ende gibt das Skript eine Zusammenfassung mit Ihrem Benutzer, Port, Verbindungsbefehl und ob ein Passwort gesetzt wurde, aus. Kopieren Sie diesen Block oder machen Sie einen Screenshot und bewahren Sie ihn an einem sicheren Ort auf. Wenn Sie Ihren SSH-Schlüssel verlieren, den Port vergessen oder das Passwort vergessen, hilft Ihnen dieser Eintrag, sich wiederherzustellen oder erneut zu verbinden (z.B. über Konsole/VNC mit demselben Benutzer und Passwort).
Das Skript gibt alles aus, was Sie brauchen: Benutzer, Port, UFW/Fail2Ban-Status und den genauen ssh -p ... Befehl. Kein Rätselraten.
Wenn SSH_USER bereits auf dem Server vorhanden ist, erstellt das Skript keinen neuen Benutzer und ändert das Passwort nicht. Es tut nur:
sudo-Gruppe ist~/.ssh/authorized_keys, wenn Sie SSH_PUB_KEY übergebenSie können es also erneut ausführen, um nur zu härten, ohne das vorhandene Passwort zu ändern.
Bei nicht unterstützten Betriebssystemen gibt das Skript Coming soon 😊 aus und beendet sich, ohne etwas zu ändern.
SSH_PUB_KEY, damit Sie sich nach Deaktivierung der Passwortauthentifizierung noch anmelden können.ssh -p PORT benutzer@server getestet haben.Wenn dieses Skript Ihnen Zeit oder einen Kopfschmerz erspart hat, können Sie das Projekt mit einem einmaligen Trinkgeld unterstützen.
BTC: 3L1Gc4avD4Bqoi2F9aq6z4heT13fXA8DZ9
Trotzdem vielen Dank.
| Variable | Beispiel | Funktion |
|---|
SSH_USER | kamaileo | Benutzername (wird erstellt, falls nicht vorhanden; falls vorhanden, bleibt Passwort unverändert). |
SSH_PASS | 'YourPass123!' | Passwort nur für neue Benutzer. Verwenden Sie ein starkes. |
SSH_PORT | 49221 | SSH-Port. Sie verwenden: ssh -p 49221 benutzer@server. |
PORTS | "5060,5061,10000-20000" | Zusätzliche Ports für UFW (optional). |
SSH_PUB_KEY | "ssh-ed25519 AAAA..." | Ihr öffentlicher Schlüssel. Dringend empfohlen, damit Sie nicht ausgesperrt werden. |
| Betriebssystem | Unterstützt | Getestet | Git-Installation |
|---|
| Debian 12 x64 | ✅ | ✅ | sudo apt-get install -y git |
| Debian 11/10, Ubuntu 24/22/20 | ✅ | ❌ | sudo apt-get install -y git |
| RHEL / Rocky / Alma / CentOS | ❌ | ❌ | sudo yum install -y git |
| Fedora | ❌ | ❌ | sudo dnf install -y git |
| Arch | ❌ | ❌ | sudo pacman -Syu git |
| openSUSE | ❌ | ❌ | sudo zypper install -y git |