SSH-Zugang und SFTP: sicher auf Webspace und Server zugreifen

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

FTP, FTPS, SFTP und SSH im Vergleich
FTP überträgt alles unverschlüsselt. FTPS und SFTP verschlüsseln die Übertragung von Dateien, nur SSH erlaubt zusätzlich Befehle auf dem Server. SFTP und SSH kommen mit Port 22 aus.

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:

  1. Prüfen Sie in der Leistungsbeschreibung, ob Ihr Tarif SSH enthält. In Einstiegspaketen fehlt es manchmal, ab dem mittleren Tarif ist es üblich.
  2. Schalten Sie den Zugang im Kundenmenü frei. Er heißt dort SSH-Zugang, Shell-Zugang oder Terminal, manchmal steht er bei den FTP-Benutzern.
  3. Notieren Sie Servername, Benutzername und Port. Der Port ist meist 22, einige Hoster nutzen einen anderen.
  4. 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-Schlüssel einrichten in fünf Schritten
Schlüssel mit ssh-keygen erzeugen, eine Passphrase setzen, den öffentlichen Teil beim Hoster hinterlegen, die Anmeldung testen und auf eigenen Servern die Anmeldung per Passwort abschalten.
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

Programme für SSH und SFTP
Das Terminal bringt ssh, scp und rsync mit. FileZilla, WinSCP und Cyberduck übertragen Dateien per SFTP mit grafischer Oberfläche.

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.log zeigt die letzten Fehler. Wo die Protokolle liegen, steht in der Hilfe des Hosters.
  • tar -czf seite.tar.gz html packt die Website in ein Archiv, das Sie dann per SFTP herunterladen.
  • wp plugin update --all aktualisiert alle WordPress-Plugins, sofern WP-CLI installiert ist. Größere Updates testen Sie vorher auf einer Staging-Umgebung.
  • php -v zeigt 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 60 in ~/.ssh/config schickt 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 tmux oder screen halten eine Sitzung auf dem Server offen, auch wenn Ihre Verbindung abreißt. Mit tmux attach holen Sie sie zurück. Auf Shared Hosting sind sie nicht immer installiert. Dann hilft nohup 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

MeldungUrsacheLösung
Connection refusedSSH ist nicht freigeschaltet oder der Port stimmt nichtFreischaltung im Kundenmenü und Port prüfen
Connection timed outEine Firewall blockiert, etwa im Firmennetz oder am ServerAus einem anderen Netz testen, Regeln der Firewall prüfen
Permission denied (publickey)Schlüssel fehlt auf dem Server, falsche Datei oder zu offene RechteMit ssh -v verbinden, Rechte von ~/.ssh prüfen
REMOTE HOST IDENTIFICATION HAS CHANGEDServer neu installiert oder umgezogen, selten ein AngriffBeim Hoster nachfragen, dann mit ssh-keygen -R server.beispiel.de den alten Eintrag löschen
Too many authentication failuresDer Agent bietet zu viele Schlüssel anIn ~/.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

Den SSH Zugang sicher halten
Statt Passwort-Login, einem Schlüssel für alles und Schlüsseln ohne Passphrase nutzen Sie nur Schlüssel, einen pro Gerät, mit Passphrase, und schalten FTP ab.
  • 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_keys durch 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.

Legen Sie jetzt per SSH Ihr erstes Backup an.


Weitere Artikel in „Webhosting“

Managed Hosting: Was der Anbieter übernimmt und wann es sich lohnt

Managed Hosting erklärt: was der Anbieter übernimmt, was bei Ihnen bleibt, Unterschiede zu Shared Ho…

Cloud Hosting: Wie Cloud Server funktionieren und wann sie sich lohnen

Cloud Hosting verständlich erklärt: wie Cloud Server funktionieren, was sie von vServer und Shared H…

Was ist Webhosting? Grundlagen einfach erklärt

Was ist Webhosting und wie funktioniert es? Der Ratgeber erklärt Speicherplatz, Server, Hosting-Arte…

Shared Hosting Vergleich: Anbieter, Leistungen und Preise

Shared Hosting Vergleich mit allen wichtigen Kriterien: Leistung, Speicherplatz, Support und Preise.…

Webhosting für Einsteiger: in fünf Schritten zur ersten Website

Webhosting für Einsteiger verständlich erklärt: von der Domain über den Tarif bis zum ersten Upload.…

WordPress Hosting: was Ihre Seite wirklich braucht

WordPress Hosting richtig auswählen: PHP-Version, Datenbank, Caching und Backups. So läuft Ihre Word…