Ein SSH Zugang öffnet Ihnen die Kommandozeile Ihres Webspace oder Servers über eine verschlüsselte Verbindung. Damit packen Sie Backups, aktualisieren WordPress per WP-CLI oder lesen Fehlerprotokolle, ohne Dateien erst herunterzuladen. Über dieselbe Verbindung läuft SFTP, mit dem Sie Dateien sicher übertragen. Das alte FTP schickt Passwörter dagegen im Klartext und sollte abgeschaltet sein. Am bequemsten und sichersten melden Sie sich mit einem Schlüssel statt mit einem Passwort an.
SSH, SFTP und FTP: der Unterschied
SSH steht für Secure Shell. Es verschlüsselt die gesamte Verbindung samt Anmeldung und läuft standardmäßig über Port 22. SFTP ist kein FTP mit Verschlüsselung, sondern ein eigenes Protokoll, das innerhalb der SSH-Verbindung arbeitet. Wer SSH hat, hat deshalb fast immer auch SFTP. FTPS ist dagegen das alte FTP mit TLS. Es ist ebenfalls verschlüsselt, braucht aber mehrere Ports und macht mit Firewalls öfter Ärger.
Manche Tarife bieten nur SFTP ohne Kommandozeile. Dann übertragen Sie Dateien sicher, können aber keine Befehle ausführen. Für Backups per Skript, WP-CLI oder Composer brauchen Sie den vollen SSH Zugang.
SSH Zugang beim Hoster freischalten
Auf einem eigenen vServer oder Root-Server ist SSH von Anfang an aktiv. Beim Webhosting müssen Sie es oft erst einschalten:
- Prüfen Sie in der Leistungsbeschreibung, ob Ihr Tarif SSH enthält. In Einstiegspaketen fehlt es manchmal, ab dem mittleren Tarif ist es üblich.
- Schalten Sie den Zugang im Kundenmenü frei. Er heißt dort SSH-Zugang, Shell-Zugang oder Terminal, manchmal steht er bei den FTP-Benutzern.
- Notieren Sie Servername, Benutzername und Port. Der Port ist meist 22, einige Hoster nutzen einen anderen.
- Hinterlegen Sie, wenn das Kundenmenü es anbietet, gleich Ihren öffentlichen Schlüssel. Wie Sie ihn erzeugen, steht weiter unten.
Manche Hoster verlangen den Schlüssel zwingend und erlauben gar keine Anmeldung mit Passwort. Das ist sicherer und kein Grund zur Sorge.
Mit dem SSH Zugang verbinden
Ein zusätzliches Programm brauchen Sie nicht. Windows 10 und 11 bringen den OpenSSH-Client mit, er läuft in PowerShell oder im Windows-Terminal. Unter macOS und Linux öffnen Sie das Terminal. Der Befehl ist überall gleich:
ssh benutzer@server.beispiel.de
# mit abweichendem Port
ssh -p 2222 benutzer@server.beispiel.de
Beim ersten Verbinden fragt SSH, ob Sie dem Server vertrauen, und zeigt einen Fingerabdruck an, der mit SHA256 beginnt. Vergleichen Sie ihn mit der Angabe in der Hilfe oder im Kundenmenü Ihres Hosters und bestätigen Sie erst dann mit yes. SSH merkt sich den Abdruck in der Datei ~/.ssh/known_hosts. Ändert er sich später unerwartet, schlägt SSH deutlich Alarm.
Anmeldung mit Schlüssel statt Passwort
Ein SSH-Schlüssel besteht aus zwei Dateien. Der private Schlüssel bleibt auf Ihrem Rechner, der öffentliche kommt auf den Server. Bei der Anmeldung beweist Ihr Rechner, dass er den passenden privaten Schlüssel besitzt, ohne ihn zu übertragen. Wer Passwörter durchprobiert, kommt so nicht weiter.
ssh-keygen -t ed25519 -C "laptop-buero"
Der Befehl fragt nach einem Speicherort, den Sie mit Enter bestätigen, und nach einer Passphrase. Setzen Sie eine. Sie schützt den Schlüssel, falls jemand Ihren Rechner oder eine Sicherung davon in die Hände bekommt. Damit Sie die Passphrase nicht bei jeder Verbindung tippen müssen, merkt sich der ssh-agent den entsperrten Schlüssel bis zur Abmeldung.
Den öffentlichen Teil finden Sie danach in der Datei ~/.ssh/id_ed25519.pub. Bei vielen Hostern fügen Sie seinen Inhalt im Kundenmenü ein. Auf einem eigenen Server oder bei Hostern ohne solches Feld erledigt das unter macOS und Linux ein einziger Befehl:
ssh-copy-id benutzer@server.beispiel.de
Unter Windows fehlt ssh-copy-id. Melden Sie sich dort einmal mit Passwort an und hängen Sie die Zeile aus der .pub-Datei an die Datei ~/.ssh/authorized_keys auf dem Server an. Achten Sie auf die Rechte: Der Ordner ~/.ssh braucht chmod 700, die Datei chmod 600. Sind sie zu offen, ignoriert der Server den Schlüssel, und Sie sehen nur „Permission denied“.
Ein Schlüssel pro Gerät ist besser als ein Schlüssel für alles. Geht ein Laptop verloren, löschen Sie nur dessen Zeile aus authorized_keys. Auf einem eigenen Server schalten Sie danach die Anmeldung mit Passwort ganz ab, wie im Ratgeber zur Root-Server-Sicherheit beschrieben.
Kürzer verbinden mit einer Konfigurationsdatei
Wer mehrere Zugänge hat, trägt sie in die Datei ~/.ssh/config ein. Danach genügt ssh kunde1, und Server, Benutzer, Port und Schlüssel stehen fest:
Host kunde1
HostName server.beispiel.de
User benutzer
Port 2222
IdentityFile ~/.ssh/id_ed25519
Dateien per SFTP übertragen
Für Dateien eignen sich Programme mit Oberfläche. Verbreitet sind FileZilla für Windows, macOS und Linux, WinSCP für Windows und Cyberduck für macOS und Windows. Tragen Sie Server, Benutzer und Port ein und wählen Sie als Protokoll ausdrücklich SFTP. In FileZilla genügt es, vor den Servernamen sftp:// zu schreiben. Ihren Schlüssel können WinSCP und FileZilla einlesen und wandeln ihn bei Bedarf in ihr eigenes Format um.
Auf der Kommandozeile kopieren scp und rsync Dateien. rsync überträgt bei einem zweiten Lauf nur Änderungen und eignet sich deshalb für große Ordner:
# einzelne Datei hochladen
scp bericht.pdf benutzer@server.beispiel.de:~/html/
# Ordner abgleichen, nur Änderungen
rsync -avz ./website/ benutzer@server.beispiel.de:~/html/
Achten Sie bei rsync auf den Schrägstrich am Ende des Quellordners. Mit ihm wird der Inhalt kopiert, ohne ihn landet der ganze Ordner als Unterordner im Ziel. Probieren Sie größere Abgleiche vorher mit der Option -n aus. Dann zeigt rsync nur an, was es tun würde.
Was Sie per SSH auf dem Webspace erledigen
Ein paar Befehle decken den größten Teil des Alltags ab:
du -sh ~/*zeigt, welcher Ordner wie viel Speicher belegt.tail -n 50 ~/logs/error.logzeigt die letzten Fehler. Wo die Protokolle liegen, steht in der Hilfe des Hosters.tar -czf seite.tar.gz htmlpackt die Website in ein Archiv, das Sie dann per SFTP herunterladen.wp plugin update --allaktualisiert alle WordPress-Plugins, sofern WP-CLI installiert ist. Größere Updates testen Sie vorher auf einer Staging-Umgebung.php -vzeigt die PHP-Version der Kommandozeile.
Beim letzten Punkt gibt es eine Falle: Die PHP-Version der Kommandozeile ist bei vielen Hostern eine andere als die, mit der Ihre Website läuft. Prüfen Sie in der Hilfe, wie Sie die passende Version aufrufen, etwa mit einem Befehl wie php8.3. Sonst brechen Composer oder WP-CLI mit seltsamen Fehlern ab. Wie Sie per SSH ein vollständiges Website-Backup mit Skript und Cronjob anlegen, steht in einer eigenen Anleitung.
Lange Aufgaben und abbrechende Verbindungen
Reißt die Verbindung ab, beendet der Server in der Regel auch die Befehle, die Sie gestartet haben. Bei einem Import, der eine halbe Stunde läuft, ist das ärgerlich. Zwei Hilfen gibt es:
- Verbindung wach halten: Mit der Zeile
ServerAliveInterval 60in~/.ssh/configschickt Ihr Rechner jede Minute ein kleines Lebenszeichen. Router und Firewalls schließen die Verbindung dann nicht mehr, weil sie untätig wirkt. - Sitzung vom Fenster trennen: Programme wie
tmuxoderscreenhalten eine Sitzung auf dem Server offen, auch wenn Ihre Verbindung abreißt. Mittmux attachholen Sie sie zurück. Auf Shared Hosting sind sie nicht immer installiert. Dann hilftnohup befehl &, das den Befehl im Hintergrund weiterlaufen lässt.
Auch beim Wechsel zu einem anderen Anbieter spart SSH Zeit. Bieten beide Server einen SSH Zugang, kopiert rsync den Webspace direkt von Server zu Server, ohne den Umweg über Ihren Rechner. Den ganzen Ablauf beschreibt die Anleitung zum Webhosting-Umzug.
Typische Fehlermeldungen beim SSH Zugang
| Meldung | Ursache | Lösung |
|---|---|---|
| Connection refused | SSH ist nicht freigeschaltet oder der Port stimmt nicht | Freischaltung im Kundenmenü und Port prüfen |
| Connection timed out | Eine Firewall blockiert, etwa im Firmennetz oder am Server | Aus einem anderen Netz testen, Regeln der Firewall prüfen |
| Permission denied (publickey) | Schlüssel fehlt auf dem Server, falsche Datei oder zu offene Rechte | Mit ssh -v verbinden, Rechte von ~/.ssh prüfen |
| REMOTE HOST IDENTIFICATION HAS CHANGED | Server neu installiert oder umgezogen, selten ein Angriff | Beim Hoster nachfragen, dann mit ssh-keygen -R server.beispiel.de den alten Eintrag löschen |
| Too many authentication failures | Der Agent bietet zu viele Schlüssel an | In ~/.ssh/config die Zeile IdentitiesOnly yes ergänzen |
Die Option -v zeigt Schritt für Schritt, welche Schlüssel SSH anbietet und woran die Anmeldung scheitert. Mit -vvv wird die Ausgabe noch ausführlicher. Schicken Sie diese Ausgabe ruhig an den Support des Hosters, sie enthält keine Passwörter.
Den SSH Zugang sicher halten
- Geben Sie den privaten Schlüssel nie weiter, auch nicht an Dienstleister. Diese bekommen einen eigenen Zugang mit eigenem Schlüssel, den Sie nach dem Auftrag wieder entfernen.
- Sehen Sie einmal im Jahr die Datei
authorized_keysdurch und löschen Sie Schlüssel, die niemand mehr braucht. Der Kommentar am Ende jeder Zeile zeigt, zu welchem Gerät ein Schlüssel gehört. - Schalten Sie FTP ab, sobald SFTP läuft. Ein vergessenes FTP-Konto mit altem Passwort ist ein bekannter Weg, auf dem Websites gehackt werden.
- FileZilla speichert Passwörter ohne Master-Passwort kaum geschützt, und Schadsoftware sucht gezielt nach solchen Dateien. Setzen Sie dort ein Master-Passwort oder melden Sie sich mit Schlüssel an.
Alle Optionen von ssh, scp und sftp beschreibt das Handbuch von OpenSSH.
Häufig gestellte Fragen
Brauche ich einen SSH Zugang für eine normale Website?
Nein. Mit Kundenmenü, SFTP und dem Backend Ihres CMS kommen Sie aus. SSH spart aber viel Zeit bei Backups, bei Updates großer Seiten und bei der Fehlersuche.
Ist SFTP dasselbe wie FTPS?
Nein. SFTP läuft über SSH auf Port 22, FTPS ist FTP mit TLS. Beide sind verschlüsselt. SFTP kommt mit nur einem Port aus und lässt sich deshalb leichter durch Firewalls bringen.
Welchen Schlüsseltyp soll ich nehmen?
Ed25519. Er ist kurz, schnell und gilt als sicher. Nur sehr alte Systeme kennen ihn nicht. Dort nehmen Sie RSA mit 4096 Bit, also ssh-keygen -t rsa -b 4096.
Was tun, wenn der private Schlüssel verloren geht?
Erzeugen Sie einen neuen Schlüssel, hinterlegen Sie ihn über das Kundenmenü und löschen Sie den alten Eintrag aus authorized_keys. Wurde das Gerät gestohlen, entfernen Sie den alten Schlüssel sofort auf allen Servern.
Kann ich SSH auf dem Smartphone nutzen?
Ja, mit Apps wie Termius oder Blink unter iOS und Termux unter Android. Für einen schnellen Blick im Notfall reicht das, für längere Arbeit ist es mühsam.
SSH Zugang heute einrichten
Schalten Sie den SSH Zugang im Kundenmenü frei, erzeugen Sie einen Ed25519-Schlüssel mit Passphrase und hinterlegen Sie den öffentlichen Teil. Wechseln Sie für Dateien auf SFTP und schalten Sie FTP danach ab.