🔐 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.
SSH (Secure Shell) allows you to establish an encrypted remote connection to your Linux server. In this tutorial, we'll set up OpenSSH, configure it securely, and set up key-based authentication.
OpenSSH-Server installieren
Install OpenSSH Server
Installiere den OpenSSH-Server auf deinem Ubuntu/Debian-System:
Install the OpenSSH server on your Ubuntu/Debian system:
sudo apt update
sudo apt install openssh-server -y
Dienst starten & aktivieren
Start & Enable Service
Starte den SSH-Dienst und aktiviere ihn für den automatischen Start beim Booten:
Start the SSH service and enable it for automatic startup at boot:
# SSH-Dienst starten / Start SSH service
sudo systemctl start ssh
# Beim Booten automatisch starten / Auto-start at boot
sudo systemctl enable ssh
Status prüfen
Check Status
Überprüfe, ob der SSH-Server korrekt läuft:
Verify that the SSH server is running correctly:
sudo systemctl status ssh
Du solltest eine Ausgabe wie diese sehen:
You should see output like this:
● 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:
You can also find your server's IP address to connect later:
ip a
# oder / or
hostname -I
SSH konfigurieren
Configure SSH
Bearbeite die SSH-Konfigurationsdatei, um die Sicherheit zu erhöhen:
Edit the SSH configuration file to improve security:
# 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:
Recommended settings:
# 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:
Restart SSH after changes:
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.
If you change the SSH port, don't forget to open the new port in the firewall before closing your current session! Otherwise, you'll lock yourself out of your server.
SSH-Key Authentifizierung einrichten
Set Up SSH Key Authentication
SSH-Keys sind sicherer als Passwörter und ermöglichen eine bequeme, passwortlose Anmeldung. Führe diese Schritte auf deinem lokalen Rechner (Client) aus:
SSH keys are more secure than passwords and allow convenient, password-free login. Run these steps on your local machine (client):
Schritt A: Schlüsselpaar generieren
Step A: Generate Key Pair
# 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
Step B: Copy Public Key to Server
# 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
Step C: Test Connection
# 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!
Firewall konfigurieren
Configure Firewall
Öffne den SSH-Port in der UFW-Firewall:
Open the SSH port in the UFW firewall:
# 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:
If you changed the port from 22 to 2222, remove the old rule:
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:
After you've successfully set up and tested SSH key authentication, you should disable password authentication. This protects your server from brute-force attacks. Edit /etc/ssh/sshd_config and set:
PasswordAuthentication no
ChallengeResponseAuthentication no
Danach SSH neu starten: sudo systemctl restart ssh. Stelle sicher, dass dein SSH-Key funktioniert, bevor du das tust!
Then restart SSH: sudo systemctl restart ssh. Make sure your SSH key works before doing this!
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!
With SSH, you can do more than just establish a shell connection — you can also use SFTP for secure file transfer, SCP for copying files, and SSH tunnels for port forwarding. SSH is the Swiss Army knife of server administration!