Wie Sie SSH zur Serververwaltung nutzen

Was ist SSH und warum ist es wichtig
SSH (Secure Shell) ist ein Netzwerkprotokoll, das eine sichere Kommunikation zwischen zwei Computern über ein unsicheres Netzwerk ermöglicht. Im Kontext des Webhostings ermöglicht SSH Ihnen die Verbindung zu Ihrem Server und dessen Verwaltung über die Kommandozeile – Installation von Software, Bearbeitung von Konfigurationsdateien, Neustart von Diensten, Anzeige von Logs und Durchführung aller administrativen Aufgaben.
Vor SSH verwendeten Administratoren das Telnet-Protokoll, das alle Daten (einschließlich Passwörter) unverschlüsselt sendete. SSH ersetzte Telnet durch die Verschlüsselung der gesamten Kommunikation, was bedeutet, dass niemand, der den Netzwerkverkehr abhört, sehen kann, was Sie auf dem Server tun, oder Ihre Zugangsdaten stehlen kann.
SSH funktioniert nach dem Client-Server-Prinzip. Ihr Computer (Client) führt ein SSH-Client-Programm aus, das eine Verbindung zum SSH-Server (Daemon) herstellt, der auf dem Remote-Server läuft, normalerweise auf Port 22. Nach der Authentifizierung erhalten Sie Zugriff auf die Kommandozeile des Servers, als säßen Sie direkt davor.
SSH-Clients
Um sich per SSH mit dem Server zu verbinden, benötigen Sie ein SSH-Client-Programm auf Ihrem Computer.
Linux und macOS – Terminal
Linux und macOS verfügen über einen integrierten SSH-Client. Öffnen Sie die Terminal-Anwendung und verwenden Sie den Befehl: ssh benutzer@server-ip-adresse. Zum Beispiel: ssh root@185.210.45.67. Das System fragt Sie nach dem Passwort (oder verwendet einen SSH-Schlüssel, falls konfiguriert). Nach erfolgreicher Authentifizierung sehen Sie die Kommandozeile des Servers und können mit der Arbeit beginnen.
Windows – PuTTY
PuTTY ist der beliebteste kostenlose SSH-Client für Windows. Laden Sie ihn von der offiziellen Seite (putty.org) herunter und starten Sie ihn. Geben Sie im Feld „Host Name" die IP-Adresse des Servers ein, lassen Sie den Port auf 22, wählen Sie „SSH" als Verbindungstyp und klicken Sie auf „Open". Ein Terminal-Fenster mit Eingabeaufforderung für Benutzernamen und Passwort erscheint.
Windows 10/11 – integriertes SSH
Neuere Windows-Versionen (10 und 11) verfügen über einen integrierten OpenSSH-Client. Öffnen Sie PowerShell oder Command Prompt und verwenden Sie denselben ssh-Befehl wie unter Linux. Dies ist ein einfacherer Ansatz als PuTTY, da keine zusätzliche Software installiert werden muss und dieselbe Oberfläche wie unter Linux/macOS verwendet wird.
Erweiterte Clients
Für Nutzer, die täglich mit mehreren Servern arbeiten, bieten erweiterte Clients wie Termius, MobaXterm oder Royal TSX zusätzliche Funktionen: Speichern von Verbindungen, SFTP-Dateimanager, Tabs für mehrere Sitzungen, Snippet-Manager und Integration mit Cloud-Plattformen.
Grundlegende SSH-Konfiguration
Eine ordnungsgemäße Konfiguration von SSH-Verbindungen spart Zeit und erhöht die Sicherheit.
SSH-Config-Datei
Unter Linux und macOS können Sie eine Datei ~/.ssh/config erstellen, die Einstellungen für Ihre Server speichert. Anstatt jedes Mal den vollständigen Befehl mit IP-Adresse, Benutzernamen und Port einzugeben, können Sie Aliasnamen definieren. Sie können beispielsweise einen Alias „meinserver" mit Host, HostName (IP-Adresse), User (Benutzername), Port und IdentityFile (Pfad zum SSH-Schlüssel) definieren. Danach reicht es aus, ssh meinserver einzugeben, und alles wird automatisch angewendet.
Änderung des Standard-Ports
SSH verwendet standardmäßig Port 22. Die Änderung auf einen anderen Port (z. B. 2222 oder einen anderen nicht standardmäßigen Port) reduziert die Anzahl automatisierter Angriffe, da die meisten Bots nur Port 22 scannen. Dies ist keine echte Sicherheitsmaßnahme (Security through Obscurity), reduziert aber effektiv das „Rauschen" in den Logs. Ändern Sie den Port in der Datei /etc/ssh/sshd_config auf dem Server.
SSH-Schlüsselauthentifizierung
Die Schlüsselauthentifizierung ist sicherer und praktischer als die Verwendung von Passwörtern. Anstatt sich Passwörter zu merken und jedes Mal einzugeben, verwenden Sie ein Paar kryptografischer Schlüssel.
So funktioniert es
Ein SSH-Schlüsselpaar besteht aus einem privaten Schlüssel (der auf Ihrem Computer bleibt und niemals geteilt wird) und einem öffentlichen Schlüssel (der auf den Server gestellt wird). Beim Verbinden sendet der Server eine Herausforderung, die nur der Besitzer des privaten Schlüssels lösen kann. Ihr SSH-Client verwendet den privaten Schlüssel zur Signatur, der Server verifiziert die Signatur mit dem öffentlichen Schlüssel und – wenn sie übereinstimmen – ist die Authentifizierung erfolgreich. Das Passwort wird nie über das Netzwerk übertragen.
Schlüsselerzeugung
Unter Linux und macOS verwenden Sie den Befehl ssh-keygen zur Erzeugung eines Schlüssels. Wir empfehlen den Ed25519-Algorithmus, der modern, schnell und sicher ist. Der Befehl fragt Sie, wo der Schlüssel gespeichert werden soll (Standard: ~/.ssh/id_ed25519) und ob Sie eine Passphrase wünschen (ein zusätzliches Passwort zum Schutz des Schlüssels – empfohlen). Es werden zwei Dateien erstellt: der private Schlüssel und der öffentliche Schlüssel mit der Erweiterung .pub.
Platzierung des öffentlichen Schlüssels auf dem Server
Der öffentliche Schlüssel sollte in die Datei ~/.ssh/authorized_keys des Benutzers, mit dem Sie sich verbinden, auf dem Server kopiert werden. Der einfachste Weg ist der Befehl ssh-copy-id, der Ihren öffentlichen Schlüssel automatisch auf den Server kopiert. Alternativ können Sie den Inhalt der .pub-Datei manuell zu authorized_keys auf dem Server hinzufügen.
Deaktivierung des Passworts
Sobald Sie bestätigt haben, dass der SSH-Schlüssel funktioniert, wird empfohlen, die Passwortauthentifizierung auf dem Server zu deaktivieren, indem Sie die Datei sshd_config bearbeiten und PasswordAuthentication auf no setzen. Dies erhöht die Sicherheit dramatisch, da Bots das Passwort nicht erraten können – der einzige Weg zum Zugriff ist der Besitz des privaten Schlüssels.
Wichtigste SSH-Befehle
Hier sind die Befehle, die Sie am häufigsten auf dem Server verwenden werden.
Navigation und Dateien
- ls -la: Listet Dateien im Verzeichnis mit detaillierten Informationen auf (Berechtigungen, Besitzer, Größe, Datum).
- cd /pfad/zum/verzeichnis: Wechselt das aktive Verzeichnis.
- pwd: Zeigt das aktuelle Verzeichnis an.
- cat datei.txt: Zeigt den Inhalt einer Datei im Terminal an.
- nano datei.txt: Öffnet eine Datei zum Bearbeiten im Nano-Editor. Strg+O zum Speichern, Strg+X zum Beenden.
- cp quelle ziel: Kopiert eine Datei. Fügen Sie -r für Verzeichnisse hinzu.
- mv quelle ziel: Verschiebt oder benennt eine Datei oder ein Verzeichnis um.
- rm datei: Löscht eine Datei. rm -rf verzeichnis löscht ein Verzeichnis mit allem Inhalt (Vorsicht mit diesem Befehl!).
- chmod 755 datei: Ändert die Dateiberechtigungen (755 = Besitzer alles, Gruppe/andere lesen und ausführen).
- chown benutzer:gruppe datei: Ändert den Dateibesitz.
System und Dienste
- top oder htop: Zeigt aktive Prozesse und Ressourcennutzung (CPU, RAM) in Echtzeit an.
- df -h: Zeigt die Festplattennutzung in lesbarem Format an.
- free -h: Zeigt die Speichernutzung (RAM) an.
- systemctl status nginx: Zeigt den Status eines Dienstes an (nginx, mysql, php-fpm usw.).
- systemctl restart nginx: Startet einen Dienst neu.
- journalctl -u nginx -f: Verfolgt Dienst-Logs in Echtzeit.
- tail -f /var/log/syslog: Verfolgt das System-Log in Echtzeit.
Netzwerk
- ping domain.com: Testet die Verbindung zu einem Server oder einer Domain.
- curl -I https://domain.com: Zeigt HTTP-Header der Website an (nützlich zur Überprüfung von Umleitungen und Headern).
- netstat -tulpn: Zeigt alle aktiven Netzwerkverbindungen und lauschenden Ports an.
- dig domain.com: DNS-Abfrage, die DNS-Einträge der Domain anzeigt.
Dateitransfer
Das SSH-Protokoll ermöglicht auch sicheren Dateitransfer zwischen Ihrem Computer und dem Server.
SCP (Secure Copy)
SCP verwendet SSH zum Kopieren von Dateien. Zum Hochladen einer Datei auf den Server verwenden Sie scp lokale_datei benutzer@server:/pfad/auf/server. Zum Herunterladen vom Server verwenden Sie scp benutzer@server:/pfad/auf/server/datei ./lokales_verzeichnis. Für das Kopieren ganzer Verzeichnisse fügen Sie das -r-Flag hinzu. SCP ist einfach, bietet aber keine erweiterten Funktionen wie die Fortsetzung unterbrochener Übertragungen.
SFTP (SSH File Transfer Protocol)
SFTP ist ein interaktives Dateitransfer-Protokoll, das über SSH läuft. Sie können es vom Terminal mit dem Befehl sftp benutzer@server oder über grafische Clients wie FileZilla, WinSCP oder Cyberduck verwenden. SFTP bietet Verzeichnisnavigation, Dateianzeige, Upload/Download mit Wiederaufnahme unterbrochener Übertragungen und Berechtigungsverwaltung – alles über eine sichere SSH-Verbindung.
rsync
rsync ist ein fortgeschritteneres Tool zur Dateisynchronisation, das nur Änderungen (Deltas) statt ganzer Dateien überträgt. Ideal für Backups und Synchronisation großer Datenmengen. Der Befehl rsync -avz --progress quelle benutzer@server:/ziel synchronisiert ein lokales Verzeichnis mit dem Serververzeichnis und überträgt nur geänderte Dateien. rsync unterstützt auch Kompression während der Übertragung und Wiederaufnahme unterbrochener Operationen.
Sicherheitsempfehlungen für SSH
- Verwenden Sie SSH-Schlüssel: Bevorzugen Sie immer Schlüssel gegenüber Passwörtern. Deaktivieren Sie die Passwortauthentifizierung nach der Einrichtung von Schlüsseln.
- Zugang einschränken: Verwenden Sie AllowUsers oder AllowGroups in sshd_config, um einzuschränken, welche Benutzer auf SSH zugreifen können.
- Fail2ban: Installieren Sie fail2ban, das IP-Adressen nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche automatisch blockiert.
- Regelmäßige Updates: Halten Sie den SSH-Server (OpenSSH) aktuell, da Sicherheitslücken gelegentlich entdeckt und behoben werden.
- Schützen Sie den privaten Schlüssel: Teilen Sie niemals den privaten Schlüssel. Setzen Sie eine Passphrase auf den Schlüssel. Bewahren Sie ein Backup an einem sicheren Ort auf.
- Root-Zugriff deaktivieren: Setzen Sie PermitRootLogin auf no oder prohibit-password und verwenden Sie sudo für administrative Aufgaben.
Fazit
SSH ist ein grundlegendes Werkzeug zur Serververwaltung, und jeder VPS- oder Dedicated-Server-Besitzer sollte die grundlegenden SSH-Befehle erlernen. Beginnen Sie mit einfachen Aufgaben wie dem Überprüfen von Logs und dem Neustart von Diensten und gehen Sie schrittweise zu fortgeschritteneren Einstellungen wie SSH-Schlüsseln und Firewall-Konfiguration über. Mit der Übung wird die Kommandozeile schneller und effizienter als jede grafische Oberfläche. Bei BeoHosting kommen alle unsere VPS-Pakete mit SSH-Zugang und voller Root-Kontrolle, und unser Support-Team ist immer verfügbar, um bei der Konfiguration und den Sicherheitseinstellungen zu helfen.
BeoHosting Team
10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Zuletzt aktualisiert: