Netzwerk-Guides.de » Sicherheit » SSH (Secure Shell) für Einsteiger: Einfache Anleitung

SSH (Secure Shell) einfach erklärt: So klappt der Einstieg

Mit SSH (Secure Shell) kannst du dich über das Netzwerk mit einem anderen Computer verbinden und diesen aus der Ferne bedienen. Besonders praktisch ist das, wenn du einen Linux-Server, einen Raspberry Pi oder ein NAS im Heimnetzwerk verwalten möchtest. Du benötigst dafür weder einen zweiten Bildschirm noch eine zusätzliche Tastatur.

Unter Windows 11 funktioniert das inzwischen erstaunlich einfach. In vielen Fällen ist der benötigte SSH-Client bereits vorhanden. Du öffnest lediglich das Windows Terminal oder die PowerShell, gibst einen Befehl ein und stellst die Verbindung zum gewünschten Rechner her.

Allerdings tauchen gerade am Anfang einige Fragen auf: Welchen Benutzernamen muss ich eingeben? Woher bekomme ich die IP-Adresse des Servers? Und wie übertrage ich eine Datei von Windows auf Linux?

Ich erkläre dir die einzelnen Schritte anhand eines konkreten Beispiels. Dabei verwenden wir einen Windows-11-PC und einen Linux-Rechner im selben Heimnetzwerk. So kannst du die Befehle leichter nachvollziehen und für deine eigenen Geräte anpassen.

Was ist SSH (Secure Shell) überhaupt?

SSH steht für Secure Shell und bezeichnet ein Netzwerkprotokoll, mit dem sich verschlüsselte Verbindungen zwischen zwei Computern herstellen lassen.

Du kannst dir SSH wie einen sicheren Zugang zu einem entfernten Rechner vorstellen. Statt direkt vor diesem Computer zu sitzen, greifst du über das Netzwerk darauf zu. Du kannst Befehle ausführen, Dateien verwalten oder bestimmte Dienste starten und beenden.

Der große Unterschied zu einer unverschlüsselten Verbindung besteht darin, dass SSH die übertragenen Daten schützt. Dazu gehören auch deine Anmeldedaten und die Befehle, die du eingibst.

Wenn du genauer verstehen möchtest, wie solche Schutzmechanismen funktionieren, erkläre ich die wichtigsten Grundlagen in meinem Artikel über Verschlüsselung für Einsteiger.

SSH arbeitet nach dem Client-Server-Prinzip:

  • SSH-Client: Das Programm auf deinem Computer, mit dem du eine Verbindung aufbaust.
  • SSH-Server: Der Dienst auf dem entfernten Rechner, der Verbindungen entgegennimmt.
  • SSH-Verbindung: Der verschlüsselte Kommunikationsweg zwischen beiden Geräten.

Ein typischer Anwendungsfall ist ein kleiner Linux-Server, der ohne Monitor in einem anderen Zimmer steht. Über SSH kannst du ihn trotzdem verwalten, ohne jedes Mal direkt an das Gerät gehen zu müssen.

Auch viele NAS-Systeme und Raspberry-Pi-Installationen unterstützen SSH. Allerdings muss der entsprechende Serverdienst auf dem Zielgerät aktiviert sein.

Für die Verbindung wird standardmäßig der TCP-Port 22 verwendet. Dieser Port muss auf dem Zielgerät erreichbar sein. Im lokalen Heimnetzwerk ist dafür normalerweise keine Portfreigabe am Router notwendig.

Was benötigst du für eine SSH-Verbindung?

Bevor wir die erste Verbindung herstellen, sollten ein paar Voraussetzungen erfüllt sein.

Für unser Beispiel verwenden wir zwei Geräte im selben Heimnetzwerk:

GerätBeispiel
Dein ComputerWindows-11-PC
ZielgerätLinux-Rechner mit SSH-Server
IP-Adresse des Zielgeräts192.168.178.50
Benutzer auf dem Linux-Rechnermax
SSH-Port22

Die IP-Adresse und der Benutzername sind nur Beispiele. Bei dir werden wahrscheinlich andere Werte stehen.

Wichtig ist, dass der Linux-Rechner eingeschaltet und über das Netzwerk erreichbar ist. Außerdem benötigst du ein Benutzerkonto auf diesem Gerät und eine passende Anmeldemöglichkeit.

Besonders wichtig: Der Benutzername für die SSH-Anmeldung gehört zum entfernten Rechner. Er muss nicht mit deinem Windows-Benutzernamen übereinstimmen.

Angenommen, du bist unter Windows als Dirk angemeldet, auf deinem Linux-Server existiert aber der Benutzer max. Dann verwendest du für die SSH-Verbindung den Benutzernamen max.

Ist der SSH-Server unter Linux bereits installiert?

Auf vielen Linux-Desktop-Systemen ist zwar ein SSH-Client vorhanden, aber nicht unbedingt ein laufender SSH-Server.

Bei Ubuntu oder Debian kannst du den Server über das Terminal installieren:

sudo apt update
sudo apt install openssh-server

Anschließend prüfst du mit folgendem Befehl, ob der Dienst läuft:

sudo systemctl status ssh

Wenn der Dienst nicht gestartet wurde, kannst du ihn folgendermaßen aktivieren:

sudo systemctl enable --now ssh

Diese Befehle gelten für Ubuntu und Debian beziehungsweise entsprechende Distributionen mit systemd. Bei anderen Linux-Systemen können Paketnamen und Dienstbezeichnungen abweichen.

Falls auf dem Linux-Rechner eine Firewall aktiviert ist, muss sie eingehende SSH-Verbindungen erlauben. Bei Ubuntu mit UFW geht das beispielsweise mit sudo ufw allow OpenSSH. Du solltest die Firewall dafür nicht vollständig deaktivieren.

SSH unter Windows 11 verwenden

Früher benötigte man unter Windows für SSH häufig ein zusätzliches Programm wie PuTTY. Das ist heute für einfache Verbindungen meist nicht mehr notwendig.

Windows 11 unterstützt OpenSSH als optionale Systemkomponente. Auf vielen Installationen ist der SSH-Client bereits verfügbar.

Ob das bei dir der Fall ist, findest du schnell heraus.

Schritt 1: Windows Terminal oder PowerShell öffnen

Klicke mit der rechten Maustaste auf das Windows-Symbol in der Taskleiste und öffne das Terminal.

Alternativ kannst du im Startmenü nach „PowerShell“ suchen.

Gib dort folgenden Befehl ein:

ssh -V
OpenSSH-Version unter Windows 11 mit PowerShell prüfen

Beachte das große V. Damit lässt du dir die installierte OpenSSH-Version anzeigen.

Wenn eine Versionsnummer erscheint, kannst du direkt weitermachen.

Erscheint dagegen die Meldung, dass der Befehl nicht gefunden wurde, fehlt der SSH-Client möglicherweise.

Schritt 2: OpenSSH-Client bei Bedarf installieren

Öffne die Windows-Einstellungen und suche unter System → Optionale Features beziehungsweise Optionale Features in der jeweiligen Windows-Version nach dem OpenSSH-Client.

Falls er nicht installiert ist, kannst du ihn über die verfügbaren optionalen Features hinzufügen.

Alternativ lässt sich OpenSSH über eine PowerShell mit Administratorrechten installieren:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Falls die Installation nicht funktioniert oder du weitere Informationen zur Einrichtung benötigst, findest du die einzelnen Schritte auch in der offiziellen OpenSSH-Anleitung von Microsoft.

Danach öffnest du das Terminal erneut und prüfst mit ssh -V, ob der Client funktioniert.

Die grafische Oberfläche von PuTTY kannst du natürlich weiterhin verwenden. Für unsere folgenden Beispiele bleiben wir aber beim integrierten SSH-Client von Windows.

IP-Adresse und Benutzernamen des Linux-Rechners herausfinden

Jetzt benötigen wir die beiden wichtigsten Angaben für die Verbindung: die IP-Adresse des Zielrechners und den dort eingerichteten Benutzernamen.

Falls du direkt auf den Linux-Rechner zugreifen kannst, öffne dort zunächst ein Terminal.

Mit folgendem Befehl findest du den aktuellen Benutzernamen heraus:

whoami

Im Beispiel lautet die Ausgabe:

max

Anschließend lässt du dir die IP-Adressen des Linux-Rechners anzeigen:

hostname -I

Die Ausgabe könnte beispielsweise so aussehen:

192.168.178.50

Manche Geräte besitzen mehrere Netzwerkadressen. Achte darauf, die IPv4-Adresse der aktiven Netzwerkverbindung zu verwenden, über die dein Windows-PC den Linux-Rechner erreichen kann.

Du kannst die IP-Adresse auch in der Geräteübersicht deines Routers nachsehen. Dort findest du die verbundenen Geräte häufig zusammen mit ihrem Gerätenamen und ihrer IP-Adresse.

Falls du noch nicht genau weißt, wie IP-Adressen funktionieren und worin sich lokale und öffentliche Adressen unterscheiden, findest du die Grundlagen in meinem Ratgeber über IP-Adressen.

Für unser weiteres Beispiel verwenden wir:

  • Linux-Benutzer: max
  • Linux-IP-Adresse: 192.168.178.50

Beide Angaben benötigst du gleich für den SSH-Befehl.

SSH-Verbindung herstellen: Schritt für Schritt

SSH-Verbindung zwischen Windows 11 und Linux-Server mit Benutzername, IP-Adresse und Verschlüsselung

Jetzt stellen wir die erste Verbindung vom Windows-PC zum Linux-Rechner her.

Öffne dazu auf deinem Windows-PC das Terminal oder die PowerShell.

Gib anschließend diesen Befehl ein:

ssh max@192.168.178.50

Drücke die Eingabetaste.

Der Befehl setzt sich aus drei Teilen zusammen:

BestandteilBedeutung
sshStartet den SSH-Client
maxBenutzername auf dem Linux-Rechner
192.168.178.50IP-Adresse des Linux-Rechners

Das @ verbindet den Benutzernamen mit der Serveradresse.

Was passiert beim ersten Verbindungsaufbau?

Wenn du dich zum ersten Mal mit dem Linux-Rechner verbindest, erscheint normalerweise eine Meldung zur Identität des Servers.

Dabei wird dir der Fingerabdruck des öffentlichen Hostschlüssels angezeigt.

SSH möchte wissen, ob du diesem Rechner vertraust.

Vergleiche den angezeigten Fingerabdruck möglichst mit dem Hostschlüssel des tatsächlichen Linux-Rechners. Bei einem eigenen Linux-Server kannst du den Fingerabdruck beispielsweise direkt am Gerät mit folgendem Befehl anzeigen:

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

Verwendet dein SSH-Server einen anderen Hostschlüsseltyp, musst du die entsprechende öffentliche Hostschlüsseldatei prüfen.

Stimmt der Fingerabdruck überein, bestätigst du die Verbindung mit:

yes

Danach wird der Hostschlüssel auf deinem Windows-PC gespeichert. Bei späteren Verbindungen kann SSH so feststellen, ob sich die Identität des Servers verändert hat.

Passwort eingeben und anmelden

Wenn auf dem Linux-Server die Anmeldung per Passwort erlaubt ist, wirst du nun nach dem Passwort des Benutzers max gefragt.

Gib das Passwort ein und bestätige mit der Eingabetaste.

Während der Eingabe erscheinen keine Zeichen auf dem Bildschirm. Auch keine Sternchen. Das ist normal und kein Fehler.

Nach erfolgreicher Anmeldung befindest du dich in einer Terminal-Sitzung auf dem Linux-Rechner.

Du kannst jetzt Befehle ausführen, obwohl du weiterhin an deinem Windows-PC sitzt.

Mit folgendem Befehl beendest du die Verbindung:

exit

Damit kehrst du zur lokalen PowerShell zurück.

Die wichtigsten SSH-Befehle für Einsteiger

Wenn du dich erfolgreich mit dem Linux-Rechner verbunden hast, kannst du dort Befehle ausführen.

Für den Anfang reichen wenige Kommandos aus. Du musst also nicht gleich die gesamte Linux-Kommandozeile beherrschen.

BefehlFunktion
pwdZeigt das aktuelle Verzeichnis
lsListet Dateien und Ordner auf
ls -lZeigt eine ausführliche Dateiliste
cd ordnernameWechselt in einen Unterordner
cd ..Wechselt eine Verzeichnisebene zurück
cd ~Wechselt ins eigene Benutzerverzeichnis
mkdir testordnerErstellt einen neuen Ordner
whoamiZeigt den angemeldeten Benutzer
exitBeendet die SSH-Verbindung

Wenn du später weitere SSH-Befehle ausprobieren möchtest, findest du in der offiziellen OpenSSH-Dokumentation ausführliche Beschreibungen zu ssh, scp, sftp und ssh-keygen.

Ein kleines Beispiel:

Du bist über SSH auf dem Linux-Rechner angemeldet und gibst folgenden Befehl ein:

pwd

Als Ausgabe erscheint:

/home/max

Das bedeutet, dass du dich gerade im persönlichen Verzeichnis des Linux-Benutzers max befindest.

Mit ls kannst du dir den Inhalt anzeigen lassen. Über mkdir testordner legst du einen neuen Unterordner an.

Diese Befehle werden auf dem entfernten Linux-Rechner ausgeführt, nicht auf deinem Windows-PC.

Gerade für Windows-Nutzer ist das anfangs etwas ungewohnt. Du musst dir aber nur merken: Solange die SSH-Sitzung geöffnet ist, arbeitest du auf dem Zielrechner.

Dateien mit SCP über SSH übertragen

Mit SSH kannst du nicht nur entfernte Rechner bedienen, sondern auch Dateien sicher übertragen. Dafür gibt es unter anderem den Befehl scp.

SCP steht für Secure Copy. Das Programm nutzt SSH zur verschlüsselten Dateiübertragung. Bei modernen OpenSSH-Versionen verwendet scp dafür standardmäßig das SFTP-Protokoll.

SCP-Dateiübertragung von Windows 11 zu einem Linux-Server über eine verschlüsselte SSH-Verbindung

Wir bleiben bei unserem Beispiel: Ein Windows-11-PC soll eine Textdatei auf den Linux-Rechner übertragen.

Beispiel 1: Eine Datei von Windows auf Linux kopieren

Angenommen, auf deinem Windows-PC liegt die Datei notizen.txt in diesem Verzeichnis:

C:\Users\Dirk\Documents\

Du möchtest sie in das Benutzerverzeichnis /home/max/ auf dem Linux-Rechner kopieren.

Öffne die PowerShell auf deinem Windows-PC und gib folgenden Befehl ein:

scp "C:\Users\Dirk\Documents\notizen.txt" max@192.168.178.50:/home/max/

Die einzelnen Bestandteile bedeuten:

Teil des BefehlsErklärung
scpStartet die Dateiübertragung
"C:\Users\Dirk\Documents\notizen.txt"Quelldatei auf deinem Windows-PC
maxBenutzername auf dem Linux-Rechner
192.168.178.50IP-Adresse des Linux-Rechners
/home/max/Zielordner auf dem Linux-Rechner

Der Zielordner muss vorhanden sein und der Benutzer max benötigt die entsprechenden Schreibrechte.

Nach der Anmeldung überträgt SCP die Datei auf den Linux-Rechner.

Die ursprüngliche Datei bleibt auf deinem Windows-PC erhalten.

Wichtig: Der Benutzername Dirk im Windows-Pfad ist nur ein Beispiel. Verwende dort deinen tatsächlichen Windows-Profilordner. Den findest du in PowerShell mit $env:USERPROFILE.

Beispiel 2: Eine Datei von Linux auf Windows kopieren

Die Übertragung funktioniert auch in die andere Richtung.

Angenommen, die Datei bericht.txt liegt auf dem Linux-Rechner im Verzeichnis /home/max/.

Du möchtest sie in deinen Windows-Downloadordner kopieren.

Dafür verwendest du auf deinem Windows-PC diesen Befehl:

scp max@192.168.178.50:/home/max/bericht.txt "$env:USERPROFILE\Downloads\"

Diesmal steht die Serveradresse am Anfang des Dateipfads. Das bedeutet, dass die Datei vom Linux-Rechner heruntergeladen wird.

Als Ziel verwenden wir den Downloadordner des aktuellen Windows-Benutzers. Der Ausdruck $env:USERPROFILE sorgt dafür, dass du den Benutzernamen nicht selbst einsetzen musst.

Das Beispiel geht davon aus, dass sich dein Downloadordner unterhalb des Windows-Profilverzeichnisses befindet.

Beispiel 3: Einen kompletten Ordner übertragen

Du kannst mit SCP auch ganze Verzeichnisse übertragen.

Dafür benötigst du den Parameter -r. Er sorgt dafür, dass sämtliche Unterordner und Dateien mitkopiert werden.

Beispiel:

scp -r "C:\Users\Dirk\Documents\Projekt" max@192.168.178.50:/home/max/

Damit kopierst du den Ordner Projekt einschließlich seines Inhalts in das Benutzerverzeichnis des Linux-Rechners.

Falls dort bereits ein gleichnamiger Ordner existiert, können gleichnamige Dateien überschrieben werden. Prüfe deshalb immer die Pfade, bevor du den Befehl ausführst.

Was bedeutet der Doppelpunkt im SCP-Befehl?

Vielleicht ist dir aufgefallen, dass nach der Serveradresse ein Doppelpunkt steht:

max@192.168.178.50:/home/max/

Dieser Doppelpunkt trennt die Serveradresse vom Dateipfad auf dem entfernten Gerät.

Er bedeutet also nicht, dass du ein Windows-Laufwerk wie C: angeben musst.

Unter Linux beginnen absolute Dateipfade normalerweise mit /. Das persönliche Verzeichnis des Benutzers max lautet in unserem Beispiel /home/max/.

Damit wird auch deutlich, warum der vollständige SCP-Befehl für Einsteiger wesentlich verständlicher ist als die allgemeine Schreibweise mit benutzername@serveradresse:/zielverzeichnis.

SSH-Schlüssel erstellen: Anmeldung ohne Serverpasswort

Bisher haben wir uns über SSH mit einem Benutzernamen und Passwort angemeldet.

Das funktioniert, ist aber nicht die einzige Möglichkeit.

SSH unterstützt auch die Anmeldung mit einem Schlüsselpaar. Dabei werden zwei zusammengehörige Schlüssel verwendet:

  • Privater Schlüssel: Bleibt auf deinem eigenen Computer und darf nicht weitergegeben werden.
  • Öffentlicher Schlüssel: Wird auf dem entfernten Rechner hinterlegt und ermöglicht dort die Überprüfung deiner Anmeldung.

Das Verfahren ist besonders praktisch, wenn du regelmäßig auf denselben Linux-Rechner zugreifst.

Außerdem schützt es bei richtiger Einrichtung gegen Angriffe, bei denen Passwörter erraten werden sollen.

SSH-Schlüssel unter Windows 11 erstellen und für die Anmeldung an einem Linux-Server verwenden

Schritt 1: SSH-Schlüssel unter Windows 11 erstellen

Öffne auf deinem Windows-PC eine PowerShell und gib diesen Befehl ein:

ssh-keygen -t ed25519

Damit erstellst du ein SSH-Schlüsselpaar mit dem modernen Ed25519-Verfahren.

Anschließend fragt dich Windows, unter welchem Dateinamen die Schlüssel gespeichert werden sollen.

Wenn du noch kein Schlüsselpaar besitzt, kannst du den vorgeschlagenen Speicherort normalerweise mit der Eingabetaste übernehmen.

Standardmäßig entstehen zwei Dateien im .ssh-Ordner deines Windows-Benutzerprofils:

DateiBedeutung
id_ed25519Privater SSH-Schlüssel
id_ed25519.pubÖffentlicher SSH-Schlüssel

Falls dort bereits Dateien mit diesen Namen existieren, solltest du sie nicht einfach überschreiben. Andernfalls funktionieren möglicherweise vorhandene SSH-Verbindungen nicht mehr.

Bei der Erstellung wirst du auch nach einer Passphrase gefragt.

Ich empfehle, eine sichere Passphrase festzulegen. Sie schützt den privaten Schlüssel zusätzlich, falls jemand Zugriff auf die Datei erhält.

Die Passphrase ist nicht dasselbe wie das Passwort deines Linux-Benutzers.

Schritt 2: Öffentlichen Schlüssel auf den Linux-Rechner übertragen

Damit du dich mit dem Schlüssel anmelden kannst, muss der öffentliche Schlüssel auf dem Linux-Rechner hinterlegt werden.

Unter Linux lässt sich das häufig mit folgendem Befehl erledigen:

ssh-copy-id -i ~/.ssh/id_ed25519.pub max@192.168.178.50

Wichtig ist allerdings, dass ssh-copy-id unter Windows nicht standardmäßig zum integrierten OpenSSH-Client gehört.

Wenn du Windows 11 verwendest, kannst du deinen öffentlichen Schlüssel stattdessen über die PowerShell übertragen.

Dafür verwendest du auf deinem Windows-PC diesen Befehl:

Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh max@192.168.178.50 "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"

Der Befehl sieht auf den ersten Blick kompliziert aus. Tatsächlich erledigt er nur drei Aufgaben:

  1. Er liest den öffentlichen SSH-Schlüssel auf deinem Windows-PC ein.
  2. Er verbindet sich mit dem Linux-Rechner und erstellt dort bei Bedarf den Ordner .ssh.
  3. Er ergänzt den öffentlichen Schlüssel in der Datei authorized_keys des Benutzers max.

Du wirst dabei möglicherweise noch einmal nach dem Passwort des Linux-Benutzers gefragt.

Der Befehl setzt voraus, dass du dich bisher mit deinem Passwort am Linux-Rechner anmelden kannst und eine normale Shell zur Verfügung steht. Außerdem muss der Linux-SSH-Server die Anmeldung per Schlüssel unterstützen.

Der private SSH-Schlüssel wird dabei nicht übertragen. Er bleibt auf deinem Windows-PC.

Schritt 3: SSH-Anmeldung mit Schlüssel ausprobieren

Nachdem der öffentliche Schlüssel auf dem Linux-Rechner gespeichert wurde, kannst du die Anmeldung testen.

Öffne auf deinem Windows-PC ein neues PowerShell-Fenster und gib ein:

ssh max@192.168.178.50

Wenn alles richtig eingerichtet ist, verwendet SSH deinen privaten Schlüssel zur Anmeldung.

Du musst dann nicht mehr das Passwort des Linux-Benutzerkontos eingeben.

Hast du deinen privaten Schlüssel mit einer Passphrase geschützt, kann allerdings weiterhin eine Abfrage dieser Passphrase erscheinen.

Das ist erwünscht: Sie schützt deinen privaten Schlüssel vor unberechtigter Nutzung.

Falls die Anmeldung nicht funktioniert, kontrolliere die verwendeten Dateipfade, den Benutzernamen und die Berechtigungen auf dem Linux-Rechner.

Deaktiviere die bisherige Passwortanmeldung auf dem Linux-Server erst, wenn du die Schlüsselanmeldung erfolgreich getestet hast und einen funktionierenden administrativen Zugang behalten kannst.

SSH sicher verwenden: Diese Regeln solltest du beachten

Die Verbindung über SSH ist verschlüsselt. Trotzdem hängt die tatsächliche Sicherheit auch davon ab, wie du den SSH-Zugang einrichtest.

Gerade bei einem Server im Heimnetzwerk solltest du einige Grundregeln beachten.

1. Verwende SSH-Schlüssel statt einfacher Passwörter.

Eine Schlüsselanmeldung mit einer sicheren Passphrase bietet guten Schutz. Du solltest deinen privaten Schlüssel außerdem niemals per E-Mail versenden oder auf einem öffentlich zugänglichen Laufwerk speichern.

2. Halte den SSH-Server aktuell.

Sicherheitslücken können auch in SSH-Servern auftreten. Installiere deshalb regelmäßig Updates für dein Linux-System und die eingesetzten SSH-Komponenten.

3. Vermeide die Anmeldung als Root.

Für gewöhnliche Verwaltungsaufgaben reicht ein normales Benutzerkonto. Falls notwendig, kannst du einzelne Aufgaben mit sudo und entsprechenden Berechtigungen ausführen.

4. Gib den SSH-Port nicht unnötig im Internet frei.

Solange du SSH nur innerhalb deines Heimnetzwerks verwendest, benötigst du normalerweise keine Portfreigabe am Router.

Möchtest du später von unterwegs sicher auf deinen Linux-Rechner zugreifen, ist beispielsweise eine VPN-Verbindung über WireGuard eine sinnvolle Lösung. Damit kannst du zunächst eine geschützte Verbindung zu deinem Heimnetzwerk herstellen und anschließend SSH nutzen.

5. Ignoriere keine Warnungen zum Hostschlüssel.

Wenn SSH meldet, dass sich die Identität eines bekannten Servers verändert hat, solltest du die Ursache prüfen. Solche Warnungen können nach einer Neuinstallation auftreten, aber auch auf einen Sicherheitsvorfall hindeuten.

Den SSH-Port von 22 auf eine andere Nummer zu ändern, ist dagegen keine ausreichende Sicherheitsmaßnahme. Das kann automatisierte Zugriffsversuche reduzieren, ersetzt aber keine sichere Authentifizierung.

Häufige SSH-Probleme und ihre Lösungen

Beim ersten Einrichten einer SSH-Verbindung funktioniert nicht immer alles sofort.

Meistens sind die Ursachen überschaubar: eine falsche IP-Adresse, ein nicht gestarteter SSH-Server oder fehlerhafte Anmeldedaten.

Fehlermeldung: Connection refused

Diese Meldung bedeutet häufig, dass auf der angegebenen Adresse und dem verwendeten Port kein Dienst Verbindungen annimmt oder die Verbindung aktiv zurückgewiesen wird.

Mögliche Ursachen sind:

  • Der SSH-Server ist nicht gestartet.
  • Der SSH-Server ist nicht installiert.
  • Du verwendest den falschen Port.
  • Eine Firewall weist die Verbindung zurück.

Prüfe auf dem Linux-Rechner zunächst, ob der SSH-Dienst läuft:

sudo systemctl status ssh

Falls du Ubuntu oder Debian verwendest und der Dienst nicht aktiv ist, kannst du ihn mit sudo systemctl start ssh starten.

Fehlermeldung: Connection timed out

Bei dieser Meldung konnte die Verbindung nicht innerhalb der vorgesehenen Zeit hergestellt werden.

Prüfe zunächst, ob dein Windows-PC das Zielgerät grundsätzlich erreichen kann:

ping 192.168.178.50

Erhältst du keine Antwort, kann das an einer falschen IP-Adresse, einer unterbrochenen Netzwerkverbindung oder auch an gesperrten ICMP-Anfragen liegen.

Ein fehlgeschlagener Ping beweist deshalb nicht automatisch, dass SSH ebenfalls nicht erreichbar ist.

Unter Windows kannst du den SSH-Port gezielt prüfen:

Test-NetConnection 192.168.178.50 -Port 22

Wenn bei TcpTestSucceeded der Wert True erscheint, ist der TCP-Port 22 erreichbar.

Fehlermeldung: Permission denied (publickey)

Diese Meldung weist darauf hin, dass die Anmeldung mit dem angebotenen öffentlichen Schlüssel nicht akzeptiert wurde.

Überprüfe insbesondere, ob der richtige öffentliche Schlüssel in der Datei ~/.ssh/authorized_keys auf dem Linux-Rechner eingetragen ist.

Auf dem Linux-Rechner kannst du die üblichen Berechtigungen für den SSH-Ordner und die Schlüsseldatei so setzen:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Führe diese Befehle als der betreffende Linux-Benutzer aus. Auch der Eigentümer der Dateien muss stimmen.

Falls die Anmeldung weiterhin scheitert, kannst du unter Windows zusätzliche Diagnoseinformationen anzeigen lassen:

ssh -v max@192.168.178.50

Damit erfährst du unter anderem, welche Schlüssel der SSH-Client bei der Anmeldung anbietet.

SSH verwendet einen anderen Port

Nicht jeder SSH-Server verwendet den Standardport 22. Manche Systeme sind beispielsweise auf Port 2222 konfiguriert.

Dann musst du den Port bei der Verbindung ausdrücklich angeben:

ssh -p 2222 max@192.168.178.50

Bei einer Dateiübertragung mit SCP lautet die entsprechende Option dagegen -P mit einem großen P:

scp -P 2222 "C:\Users\Dirk\Documents\notizen.txt" max@192.168.178.50:/home/max/

Der Port muss natürlich mit der tatsächlichen Konfiguration des SSH-Servers übereinstimmen.

Häufige Fragen zu SSH (FAQ)

Kann ich SSH unter Windows 11 ohne PuTTY verwenden?

Welchen Benutzernamen muss ich für SSH verwenden?

Muss ich für SSH eine feste IP-Adresse vergeben?

Funktioniert SSH auch über WLAN?

Ist SSH das Gleiche wie Remote Desktop?

Kann ich mit SSH auch auf mein NAS zugreifen?

Fazit: SSH ist auch für Einsteiger gut zu nutzen

SSH (Secure Shell) ist eine praktische Möglichkeit, um andere Computer im Netzwerk sicher zu verwalten. Besonders beim Zugriff auf Linux-Rechner, Raspberry Pis oder NAS-Systeme erspart dir das eine Menge Aufwand.

Unter Windows 11 benötigst du dafür meistens nicht einmal zusätzliche Software. Mit dem integrierten SSH-Client kannst du Verbindungen herstellen, Befehle ausführen und Dateien zwischen Geräten übertragen.

Am Anfang sind vor allem drei Angaben wichtig: der Benutzername auf dem Zielgerät, dessen IP-Adresse und gegebenenfalls der SSH-Port.

Wenn die erste Verbindung funktioniert, kannst du dich schrittweise mit weiteren Befehlen vertraut machen. Eine Anmeldung über SSH-Schlüssel ist dann der nächste sinnvolle Schritt.

Mein Tipp: Probiere SSH zunächst mit zwei eigenen Geräten im Heimnetzwerk aus. So lernst du die wichtigsten Funktionen kennen, ohne einen Server direkt über das Internet erreichbar machen zu müssen.

3 Kommentare zu „SSH (Secure Shell) einfach erklärt: So klappt der Einstieg“

  1. Für einen Ex-Windows-User:
    scp datei benutzername@serveradresse:/zielverzeichnis,
    Benutzername vom aktuellen Computer?
    serveradresse in 192.168…..
    Zielverzeichnis (am Server?)

    ssh-copy-id benutzername@serveradresse.
    bitte mit Beispiel für ganz Unerfahrene.

    Alles schon ganz gut, aber nicht wirklich brauchbar

    1. Vielen Dank für deinen Kommentar und die ehrliche Kritik. Du hast recht: Gerade für Einsteiger sind konkrete Beispiele mit vollständigen Befehlen deutlich hilfreicher als allgemeine Platzhalter.

      Ich habe deine Rückmeldung deshalb zum Anlass genommen, den Artikel komplett zu überarbeiten und um ausführliche Schritt-für-Schritt-Anleitungen zu ergänzen.

      Zu deinen Fragen:

      • Benutzername: Gemeint ist der Benutzer auf dem entfernten Linux-Rechner, nicht der Benutzer deines eigenen Computers.
      • Serveradresse: Das kann beispielsweise die lokale IP-Adresse 192.168.178.50 sein.
      • Zielverzeichnis: Ja, das ist der Ordner auf dem entfernten Linux-Server, beispielsweise /home/max/.

      Ein vollständiger Befehl sieht dann so aus:

      scp datei.txt max@192.168.178.50:/home/max/

      Damit wird die Datei datei.txt aus dem aktuellen Verzeichnis deines Computers in das Verzeichnis /home/max/ auf dem Linux-Server kopiert.

      Auch die Einrichtung von SSH-Schlüsseln habe ich jetzt ausführlicher erklärt – einschließlich der Besonderheit, dass ssh-copy-id unter Windows nicht standardmäßig verfügbar ist.

      Vielleicht schaust du dir die überarbeitete Anleitung noch einmal an. Ich hoffe, dass die Beispiele jetzt verständlicher und vor allem praktisch nachvollziehbar sind.

      Nochmals vielen Dank für deinen Hinweis. Solche Rückmeldungen helfen mir, meine Anleitungen zu verbessern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

 

Nach oben scrollen