- 1 1. Einführung
- 2 2. Grundlegende SSH-Konfiguration
- 3 Zusammenfassung
- 4 3. SSH-Sicherheit erhöhen
- 5 Zusammenfassung
- 6 4. Erweiterte SSH-Konfiguration
- 7 Zusammenfassung
- 8 5. SSH-Fehlerbehebung
- 9 Zusammenfassung
- 10 6. FAQ (Häufige Fragen)
- 10.1 6.1 SSH-Verbindung wird wegen Timeout getrennt – was tun?
- 10.2 6.2 Passwort vergessen – wie wieder Zugang erhalten?
- 10.3 6.3 SSH unter Windows nutzen?
- 10.4 6.4 SSH unter Ubuntu WSL (Windows Subsystem for Linux)?
- 10.5 6.5 Zusätzliche SSH-Sicherheitsmaßnahmen nach der Einrichtung?
- 10.6 6.6 SSH-Logs in Echtzeit prüfen?
- 10.7 6.7 SSH komfortabler nutzen?
- 11 Zusammenfassung
- 12 Verwandte Artikel
1. Einführung
Die Konfiguration von SSH unter Ubuntu ist von entscheidender Bedeutung für die Verwaltung von Remote-Servern. SSH (Secure Shell) ist ein Protokoll, das eine sichere, verschlüsselte Kommunikation ermöglicht und weit verbreitet zum Zugriff auf Server, zur Ausführung von Befehlen und zum Übertragen von Dateien aus der Ferne verwendet wird.
In diesem Artikel erklären wir detailliert, wie man SSH unter Ubuntu einrichtet – von den grundlegenden Installationsschritten bis hin zu fortgeschrittenen Sicherheitsmaßnahmen.
1.1 Warum SSH unter Ubuntu einrichten?
1.1.1 Was ist SSH?
SSH (Secure Shell) ist ein Protokoll zur sicheren Kommunikation über Netzwerke. Es wird typischerweise für das Einloggen auf Remote-Servern, den Dateitransfer und das Tunneling (Port-Forwarding) genutzt. Im Gegensatz zu traditionellen Diensten wie Telnet oder FTP verschlüsselt SSH sämtliche Übertragungen und bietet somit ein hohes Maß an Sicherheit.
1.1.2 Typische Anwendungsfälle für SSH unter Ubuntu
Folgende Szenarien machen die Remote-Verwaltung von Ubuntu mit SSH sinnvoll:
- Verwaltung von Cloud-Servern: Bei Cloud-Diensten wie AWS, GCP oder Vultr erfolgt der Zugriff auf Server in der Regel per SSH.
- Remote-Zugriff im LAN: Zugriff und Fernwartung von Servern oder Entwicklungsrechnern im internen Netzwerk über SSH.
- Management von IoT-Geräten: Fernsteuerung von Embedded Devices wie dem Raspberry Pi via SSH.
In der Standardkonfiguration von Ubuntu ist der SSH-Server deaktiviert. Für die Nutzung von SSH müssen Sie diesen daher manuell installieren und korrekt konfigurieren.
2. Grundlegende SSH-Konfiguration
Um SSH unter Ubuntu zu verwenden, müssen Sie den SSH-Server (OpenSSH) installieren und passend konfigurieren. In diesem Abschnitt erklären wir die Installation, Basiseinstellungen, Firewall-Konfiguration und Verbindungsaufbau im Detail.
2.1 Installation und Start von OpenSSH
2.1.1 Was ist OpenSSH?
OpenSSH (Open Secure Shell) ist eine Open-Source-Implementierung des SSH-Protokolls. Es bietet nicht nur Remote-Zugriff, sondern unterstützt auch sichere Dateiübertragungen (SCP und SFTP) sowie Port-Forwarding.
2.1.2 OpenSSH unter Ubuntu installieren
Standardmäßig ist der SSH-Server unter Ubuntu nicht vorinstalliert. Installieren Sie ihn mit folgendem Befehl:
sudo apt update && sudo apt install -y openssh-server
Dieser Befehl aktualisiert die Paketlisten und installiert den OpenSSH-Server.
2.1.3 SSH-Server starten und Autostart aktivieren
Nach der Installation können Sie den SSH-Server starten und für den automatischen Start konfigurieren:
sudo systemctl enable --now ssh
Mit der Option enable
wird der SSH-Dienst auch beim Systemstart automatisch ausgeführt.
2.1.4 Funktion von SSH prüfen
Überprüfen Sie, ob der SSH-Server läuft, mit:
systemctl status ssh
Eine typische Ausgabe sieht so aus:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago
Falls inactive (dead)
oder failed
angezeigt wird, starten Sie SSH manuell:
sudo systemctl start ssh
2.2 Firewall (UFW) konfigurieren
Unter Ubuntu steht mit ufw
(Uncomplicated Firewall) eine einfach zu bedienende Firewall zur Verfügung. Um SSH-Verbindungen zuzulassen, muss UFW entsprechend eingerichtet werden.
2.2.1 UFW-Status prüfen
Überprüfen Sie zunächst den aktuellen Status der Firewall:
sudo ufw status
Beispielausgabe (UFW deaktiviert):
Status: inactive
Beispielausgabe (UFW aktiviert):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 SSH-Verbindungen zulassen
Um den Standardport 22 für SSH freizuschalten:
sudo ufw allow ssh
Alternativ können Sie explizit den Port angeben:
sudo ufw allow 22/tcp
2.2.3 UFW aktivieren
Wenn UFW deaktiviert ist, können Sie sie mit folgendem Befehl aktivieren:
sudo ufw enable
Aktivieren Sie UFW erst, wenn Sie sichergestellt haben, dass SSH-Verbindungen erlaubt sind – ansonsten kann ein Remote-Zugriff unterbunden werden.
2.2.4 Einstellungen prüfen
Überprüfen Sie die Regeln erneut:
sudo ufw status verbose
Beispielausgabe
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Wenn diese Ausgaben erscheinen, sind SSH-Verbindungen erlaubt.
2.3 Grundlegende SSH-Verbindung herstellen
Wenn der SSH-Server läuft, können Sie von einem Client aus eine Verbindung herstellen.
2.3.1 Verbindung von Linux/macOS
Öffnen Sie ein Terminal und führen Sie diesen Befehl aus:
ssh benutzername@server-ip-adresse
Beispiel:
ssh user@192.168.1.100
Beim erstmaligen Verbinden erscheint ggf. diese Warnung:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
Geben Sie yes
ein und bestätigen Sie mit Enter, um die Verbindung herzustellen.
2.3.2 Verbindung von Windows
Unter Windows können Sie entweder PowerShell oder PuTTY verwenden.
Mit PowerShell:
Ab Windows 10 ist der SSH-Client bereits integriert. Nutzen Sie diesen Befehl:
ssh benutzername@server-ip-adresse
Mit PuTTY:
- Laden Sie PuTTY von der offiziellen Website herunter und installieren Sie es.
- Öffnen Sie PuTTY und geben Sie unter
Host Name (or IP address)
die IP-Adresse des Servers ein. - Stellen Sie
Connection type
aufSSH
und klicken Sie aufOpen
. - Geben Sie Benutzernamen und Passwort ein.
Zusammenfassung
In diesem Abschnitt haben wir die grundlegende Einrichtung von SSH unter Ubuntu behandelt:
- Installation und Start von OpenSSH
- SSH-Zugriff in der UFW-Firewall erlauben
- SSH-Verbindung mit Linux/macOS und Windows
3. SSH-Sicherheit erhöhen
SSH ist ein praktisches Tool für Remote-Verbindungen, bringt jedoch auch potenzielle Sicherheitsrisiken mit sich. Angreifer nutzen häufig Brute-Force-Attacken oder Portscans, um SSH-Server zu kompromittieren. Deshalb sind zusätzliche Sicherheitsmaßnahmen unerlässlich.
3.1 Root-Login verbieten
Standardmäßig ist der Root-Login über SSH unter Ubuntu teilweise erlaubt. Da das Root-Konto umfassende Rechte besitzt und ein attraktives Ziel für Angreifer darstellt, sollten Sie Root-Logins deaktivieren und stattdessen normale Benutzerkonten verwenden.
3.1.1 Konfiguration
- Bearbeiten Sie die SSH-Konfigurationsdatei
/etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
- Suchen Sie die Zeile und ändern Sie sie zu
PermitRootLogin no
.
PermitRootLogin no
- Speichern Sie die Datei und starten Sie den SSH-Dienst neu:
sudo systemctl restart ssh
- Überprüfen Sie, ob die Änderung übernommen wurde:
sudo grep PermitRootLogin /etc/ssh/sshd_config
Wenn PermitRootLogin no
angezeigt wird, ist die Einstellung aktiv.
3.2 Passwort-Authentifizierung deaktivieren & SSH-Key-Authentifizierung
Die Verwendung von Public-Key-Authentifizierung statt Passwörtern erhöht die Sicherheit erheblich, da so Brute-Force-Angriffe erschwert werden.
3.2.1 SSH-Schlüssel erzeugen
Erstellen Sie auf Ihrem lokalen Rechner ein Schlüsselpaar:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Dadurch entstehen zwei Dateien:
- Privater Schlüssel (
id_rsa
): bleibt auf dem lokalen Rechner (niemals weitergeben!) - Öffentlicher Schlüssel (
id_rsa.pub
): wird auf den Server übertragen
3.2.2 Öffentlichen Schlüssel auf Server kopieren
Übertragen Sie den Schlüssel mit:
ssh-copy-id benutzername@server-ip-adresse
3.2.3 Passwort-Authentifizierung deaktivieren
Öffnen Sie /etc/ssh/sshd_config
und ändern Sie:
PasswordAuthentication no
Starten Sie SSH neu, um die Änderung zu übernehmen:
sudo systemctl restart ssh
3.3 SSH-Zugang auf bestimmte Benutzer beschränken
Sie können definieren, welche Benutzer sich per SSH anmelden dürfen.
3.3.1 Konfiguration
- Bearbeiten Sie
/etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
- Fügen Sie die erlaubten Nutzer hinzu:
AllowUsers benutzer1 benutzer2
- Starten Sie SSH neu:
sudo systemctl restart ssh
3.4 SSH-Port ändern
Der Standardport 22 ist ein bekanntes Angriffsziel. Sie können den Port wechseln, um die Angriffsfläche zu verringern.
3.4.1 Port-Änderung
- Öffnen Sie
/etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
- Ändern Sie z.B.
Port 22
zuPort 2200
:
Port 2200
- Speichern Sie die Datei und starten Sie SSH neu:
sudo systemctl restart ssh
3.4.2 Firewall für neuen Port konfigurieren
sudo ufw allow 2200/tcp
Prüfen Sie die Firewall-Regeln:
sudo ufw status
3.5 Schutz vor Brute-Force mit Fail2Ban
Fail2Ban erkennt wiederholte Fehlversuche beim SSH-Login und blockiert die Angreifer temporär.
3.5.1 Installation
sudo apt install fail2ban -y
3.5.2 Konfiguration
Kopieren Sie die Konfiguration und passen Sie sie an:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Passen Sie z. B. den Port und die Sperrparameter an:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Fail2Ban neu starten
sudo systemctl restart fail2ban
3.5.4 Blockierte IPs prüfen
sudo fail2ban-client status sshd
Zusammenfassung
In diesem Abschnitt haben wir Methoden zur Absicherung von SSH vorgestellt:
- Root-Login verbieten
- Passwort-Authentifizierung deaktivieren und Public-Key-Authentifizierung nutzen
- Zugriff nur für bestimmte Benutzer erlauben
- SSH-Port ändern
- Fail2Ban für automatischen Schutz bei Angriffen einsetzen
Mit diesen Maßnahmen erhöhen Sie die Sicherheit Ihrer SSH-Umgebung deutlich.

4. Erweiterte SSH-Konfiguration
Nachdem die Basis- und Sicherheitskonfiguration abgeschlossen ist, können Sie SSH mit weiteren Funktionen noch flexibler und sicherer nutzen. In diesem Abschnitt behandeln wir ssh.socket
ab Ubuntu 22.10, SSH-Tunneling, parallele Ports und IP-Restriktionen.
4.1 Verwendung von ssh.socket
ab Ubuntu 22.10
Seit Ubuntu 22.10 kann SSH über ssh.socket
dynamisch beim Verbindungsaufbau gestartet werden. Dies spart Ressourcen.
4.1.1 Status von ssh.socket prüfen
sudo systemctl status ssh.socket
Beispielausgabe (aktiv):
● ssh.socket - OpenSSH Server Socket
Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
Active: active (listening) since Fri 2025-02-28 12:00:00 UTC
4.1.2 Aktivieren/Deaktivieren von ssh.socket
Aktivieren:
sudo systemctl enable --now ssh.socket
Deaktivieren und stattdessen klassischen Service nutzen:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 SSH-Tunneling (Port-Forwarding)
SSH-Tunnel bieten eine sichere Verbindung zwischen Client und Server, um Dienste zu schützen.
4.2.1 Lokales Port-Forwarding
ssh -L 3306:localhost:3306 benutzer@server-ip
4.2.2 Reverse-Port-Forwarding
ssh -R 8080:localhost:80 benutzer@server-ip
4.2.3 Dynamisches Port-Forwarding (SOCKS-Proxy)
ssh -D 1080 benutzer@server-ip
4.3 Mehrere SSH-Ports konfigurieren
Sie können SSH für verschiedene Netzwerke auf mehreren Ports lauschen lassen.
4.3.1 Konfiguration
- Bearbeiten Sie
/etc/ssh/sshd_config
:
Port 22
Port 2200
- Neustart des SSH-Servers:
sudo systemctl restart ssh
- Neuen Port in UFW freigeben:
sudo ufw allow 2200/tcp
4.4 SSH-Zugriff nur für bestimmte IP-Adressen erlauben
Erlauben Sie SSH-Zugriffe nur aus bestimmten IPs, um Sicherheit zu erhöhen.
4.4.1 /etc/hosts.allow
konfigurieren
sudo nano /etc/hosts.allow
Fügen Sie z.B. hinzu:
sshd: 192.168.1.100
4.4.2 /etc/hosts.deny
konfigurieren
sudo nano /etc/hosts.deny
sshd: ALL
Zusammenfassung
In diesem Abschnitt haben wir fortgeschrittene SSH-Konfigurationen vorgestellt:
- ssh.socket ab Ubuntu 22.10
- Sicheres SSH-Tunneling
- Mehrere Ports konfigurieren
- Zugriff auf bestimmte IPs beschränken
Diese Einstellungen verbessern Sicherheit und Flexibilität.
5. SSH-Fehlerbehebung
Manchmal kommt es trotz richtiger Konfiguration zu Verbindungsproblemen. Hier finden Sie typische Fehler und Lösungen.
5.1 Verbindung zu SSH nicht möglich
Mögliche Fehlerquellen:
5.1.1 SSH-Dienst läuft nicht
sudo systemctl status ssh
Lösung:
- Falls
inactive (dead)
oderfailed
erscheint, starten Sie SSH neu:
sudo systemctl restart ssh
- Autostart ggf. aktivieren:
sudo systemctl enable ssh
5.1.2 Port nicht offen
Verwenden Sie den richtigen Port:
ssh -p 2200 benutzer@server-ip
Offene Ports prüfen:
sudo netstat -tulnp | grep ssh
ss -tulnp | grep ssh
5.1.3 Firewall-Einstellungen prüfen
sudo ufw status
Lösung bei fehlender Freigabe:
sudo ufw allow 22/tcp
sudo ufw allow 2200/tcp
5.2 Authentifizierungsfehler
5.2.1 Falscher Benutzer oder Passwort
ssh benutzer@server-ip
5.2.2 Public-Key-Authentifizierung falsch konfiguriert
Prüfen Sie ~/.ssh/authorized_keys
auf dem Server:
cat ~/.ssh/authorized_keys
5.2.3 Falsche Dateirechte im .ssh-Verzeichnis
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 755 /home/benutzer
5.3 Instabile oder abgebrochene Verbindungen
Oft sind Zeitüberschreitungen schuld.
5.3.1 Serverseitig: ClientAliveInterval
anpassen
ClientAliveInterval 60
ClientAliveCountMax 3
Danach SSH-Dienst neu starten.
5.3.2 Clientseitig: Einstellungen in ~/.ssh/config
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
5.4 SSH-Logs prüfen
5.4.1 Live-Logs anzeigen
sudo journalctl -u ssh -f
5.4.2 Alte Logs durchsuchen
sudo cat /var/log/auth.log | grep ssh
sudo grep "Failed password" /var/log/auth.log
Zusammenfassung
Dieser Abschnitt behandelte die häufigsten SSH-Probleme und Lösungen:
- Prüfen, ob SSH läuft
- Ports und Firewall überprüfen
- Public-Key-Konfiguration und Dateirechte prüfen
- Timeout-Probleme und Log-Analyse
Mit diesen Tipps lösen Sie SSH-Probleme schnell und effizient.
6. FAQ (Häufige Fragen)
Hier finden Sie Antworten auf die häufigsten Fragen zur SSH-Konfiguration unter Ubuntu.
6.1 SSH-Verbindung wird wegen Timeout getrennt – was tun?
6.1.1 Serverseitige Einstellung
Bearbeiten Sie /etc/ssh/sshd_config
:
ClientAliveInterval 60
ClientAliveCountMax 3
SSH neu starten.
6.1.2 Einstellung auf dem Client
Fügen Sie Ihrer ~/.ssh/config
folgendes hinzu:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 Passwort vergessen – wie wieder Zugang erhalten?
6.2.1 Mit physischem Zugang
- Im Recovery-Modus starten (über das GRUB-Menü).
- Mit folgendem Befehl Passwort zurücksetzen:
passwd benutzername
- System neu starten.
6.2.2 Ohne physischen Zugang (z.B. Cloud-Server)
- Verwenden Sie die Konsole Ihres VPS-Anbieters.
- Nutzen Sie Public-Key-Authentifizierung, falls eingerichtet.
6.3 SSH unter Windows nutzen?
6.3.1 Mit PowerShell
Ab Windows 10 integriert:
ssh benutzername@server-ip
6.3.2 Mit PuTTY
- Laden Sie PuTTY herunter und installieren Sie es.
- Tragen Sie die Server-IP unter
Host Name
ein. - Wählen Sie
SSH
als Verbindungstyp und klicken Sie aufOpen
. - Benutzernamen und Passwort eingeben.
6.4 SSH unter Ubuntu WSL (Windows Subsystem for Linux)?
Installieren Sie den SSH-Server mit:
sudo apt update && sudo apt install openssh-server
In /etc/ssh/sshd_config
aktivieren Sie:
PasswordAuthentication yes
Starten Sie den Dienst manuell:
sudo service ssh start
6.5 Zusätzliche SSH-Sicherheitsmaßnahmen nach der Einrichtung?
6.5.1 Fail2Ban einsetzen
sudo apt install fail2ban -y
Konfigurieren Sie /etc/fail2ban/jail.local
:
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
sudo systemctl restart fail2ban
6.5.2 SSH-Port ändern
Port 2200
Freigabe im UFW:
sudo ufw allow 2200/tcp
6.6 SSH-Logs in Echtzeit prüfen?
sudo journalctl -u ssh -f
Oder nachträglich:
sudo cat /var/log/auth.log | grep ssh
6.7 SSH komfortabler nutzen?
6.7.1 Schneller Login über .ssh/config
Host meinserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
Danach reicht:
ssh meinserver
6.7.2 Verwendung von ssh-agent
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Zusammenfassung
In diesem Abschnitt haben wir häufige Fragen und Praxistipps zu SSH unter Ubuntu beantwortet:
- Timeout-Probleme und deren Lösung
- Passwort-Wiederherstellung
- SSH unter Windows & WSL
- Zusätzliche Sicherheitsmaßnahmen
- Logs und Komfortfunktionen
Nutzen Sie diese Tipps für eine sichere und effiziente Verwaltung Ihrer Remote-Server.
Verwandte Artikel
1. Einführung Durch die Verwendung von SSH auf Ubuntu können Sie sicher auf Server und PCs aus der Ferne zugreifen und […]