🔐 SSH-Server installieren (OpenSSH)

🔐 Install SSH Server (OpenSSH)

SSH (Secure Shell) ermöglicht dir eine verschlüsselte Fernverbindung zu deinem Linux-Server. In diesem Tutorial richten wir OpenSSH ein, konfigurieren es sicher und richten eine schlüsselbasierte Authentifizierung ein.

1

OpenSSH-Server installieren

Installiere den OpenSSH-Server auf deinem Ubuntu/Debian-System:

Terminal
sudo apt update
sudo apt install openssh-server -y
2

Dienst starten & aktivieren

Starte den SSH-Dienst und aktiviere ihn für den automatischen Start beim Booten:

Terminal
# SSH-Dienst starten / Start SSH service
sudo systemctl start ssh

# Beim Booten automatisch starten / Auto-start at boot
sudo systemctl enable ssh
3

Status prüfen

Überprüfe, ob der SSH-Server korrekt läuft:

Terminal
sudo systemctl status ssh

Du solltest eine Ausgabe wie diese sehen:

Output
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
     Active: active (running) since ...
   Main PID: 1234 (sshd)
      Tasks: 1 (limit: 4915)
     Memory: 1.2M
        CPU: 23ms
     CGroup: /system.slice/ssh.service
             └─1234 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

Du kannst auch die IP-Adresse deines Servers herausfinden, um dich später zu verbinden:

Terminal
ip a
# oder / or
hostname -I
4

SSH konfigurieren

Bearbeite die SSH-Konfigurationsdatei, um die Sicherheit zu erhöhen:

Terminal
# Backup erstellen / Create backup
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# Konfiguration bearbeiten / Edit configuration
sudo nano /etc/ssh/sshd_config

Empfohlene Einstellungen:

/etc/ssh/sshd_config
# SSH-Port ändern (Standard ist 22) / Change SSH port (default is 22)
Port 2222

# Root-Login deaktivieren / Disable root login
PermitRootLogin no

# Maximale Anmeldeversuche begrenzen / Limit max auth attempts
MaxAuthTries 3

# Leerlauf-Timeout setzen (5 Min) / Set idle timeout (5 min)
ClientAliveInterval 300
ClientAliveCountMax 0

# Nur bestimmte Benutzer erlauben / Allow only specific users
AllowUsers dein-benutzername

# X11-Forwarding deaktivieren (wenn nicht benötigt)
# Disable X11 forwarding (if not needed)
X11Forwarding no

Nach Änderungen SSH neu starten:

Terminal
sudo systemctl restart ssh
⚠️

Warnung / Warning

Wenn du den SSH-Port änderst, vergiss nicht, den neuen Port in der Firewall freizugeben, bevor du die aktuelle Sitzung schließt! Sonst sperrst du dich selbst aus deinem Server aus.

5

SSH-Key Authentifizierung einrichten

SSH-Keys sind sicherer als Passwörter und ermöglichen eine bequeme, passwortlose Anmeldung. Führe diese Schritte auf deinem lokalen Rechner (Client) aus:

Schritt A: Schlüsselpaar generieren

Terminal (Client)
# ED25519-Schlüsselpaar generieren (empfohlen)
# Generate ED25519 key pair (recommended)
ssh-keygen -t ed25519 -C "dein@email.de"

# Oder RSA mit 4096 Bit / Or RSA with 4096 bits
ssh-keygen -t rsa -b 4096 -C "dein@email.de"

# Enter drücken für Standardpfad (~/.ssh/id_ed25519)
# Press Enter for default path (~/.ssh/id_ed25519)
# Optional: Passphrase für zusätzliche Sicherheit eingeben
# Optional: Enter a passphrase for additional security

Schritt B: Öffentlichen Schlüssel auf den Server kopieren

Terminal (Client)
# Automatisch kopieren / Copy automatically
ssh-copy-id -p 2222 benutzer@SERVER-IP

# Oder manuell (wenn ssh-copy-id nicht verfügbar)
# Or manually (if ssh-copy-id is not available)
cat ~/.ssh/id_ed25519.pub | ssh -p 2222 benutzer@SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Schritt C: Verbindung testen

Terminal (Client)
# Mit dem neuen Port verbinden / Connect with new port
ssh -p 2222 benutzer@SERVER-IP

# Du solltest jetzt ohne Passwort eingeloggt werden!
# You should now be logged in without a password!
6

Firewall konfigurieren

Öffne den SSH-Port in der UFW-Firewall:

Terminal
# Standard-Port 22 erlauben / Allow default port 22
sudo ufw allow ssh

# Oder benutzerdefinierten Port erlauben / Or allow custom port
sudo ufw allow 2222/tcp

# Firewall aktivieren (falls noch nicht aktiv)
# Enable firewall (if not yet active)
sudo ufw enable

# Status prüfen / Check status
sudo ufw status verbose

Wenn du den Port von 22 auf 2222 geändert hast, entferne die alte Regel:

Terminal
sudo ufw delete allow ssh
# Jetzt ist nur noch Port 2222 offen / Now only port 2222 is open
💡

Tipp: Passwort-Authentifizierung deaktivieren

Nachdem du die SSH-Key-Authentifizierung erfolgreich eingerichtet und getestet hast, solltest du die Passwort-Authentifizierung deaktivieren. Das schützt deinen Server vor Brute-Force-Angriffen. Bearbeite /etc/ssh/sshd_config und setze:

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no

Danach SSH neu starten: sudo systemctl restart ssh. Stelle sicher, dass dein SSH-Key funktioniert, bevor du das tust!

ℹ️

Info

Mit SSH kannst du nicht nur eine Shell-Verbindung herstellen — du kannst auch SFTP für sicheren Dateitransfer, SCP zum Kopieren von Dateien und SSH-Tunnel für Port-Forwarding nutzen. SSH ist das Schweizer Taschenmesser der Server-Verwaltung!