Linux und Windows waren früher erbitterte Feinde, aber heutzutage verstehen sie sich viel besser. Tatsächlich kannst du jetzt sogar SSH nativ in Windows verwenden: sowohl als Client als auch als Server. Was machst du, wenn du ein Windows-Administrator bist, aber auch Linux-Maschinen verwalten musst? Du gewöhnst dich an den (Secure Shell) SSH-Befehl in Linux!
Dies ist Teil IV der Blogpost-Serie „Ein Windows-Guy in einer Linux-Welt“. Wenn du mehr über beliebte Linux-Konzepte erfahren möchtest, solltest du unbedingt Teil I, Teil II und Teil III lesen.
In diesem Beitrag lernst du, wie du SSH in Linux aktivierst und deinen Windows SSH-Client einrichtest, um eine Verbindung zu entfernten Linux-Servern herzustellen.
Hinweis: Alle Beispiele werden mit OpenSUSE Linux durchgeführt.
Weg vom Desktop-Umfeld
In dem ersten Post dieser Serie wurde empfohlen, die KDE-Desktop-Umgebung zu verwenden. Während du die OpenSUSE-Einrichtung durchführst, hast du wahrscheinlich eine weitere verlockende Option gesehen: die Server-Edition von OpenSUSE.

Wenn Sie die Server-Edition der meisten Linux-Distributionen (einschließlich OpenSUSE) installiert haben, haben Sie möglicherweise bemerkt, dass es keine Desktop-Oberfläche gibt. Die Server-Edition der meisten populären Distributionen (wie OpenSUSE, Ubuntu Server und CentOS) ist ähnlich wie Windows Server Core: Es gibt praktisch keinen Desktop.
Um zu verstehen, warum der Desktop in der Linux-Kultur in der Regel gemieden wird, müssen Sie die Befehlszeilenschnittstelle (CLI) und SSH verstehen.
SSH: Der Goldstandard der Fernverwaltung
SSH, wie viele andere Protokolle zur Fernverwaltung, ist ein client-serverbasiertes System. Ein Client verbindet sich remote über das Netzwerk mit einem Server und ermöglicht das Ausführen von Befehlen (oder sogar das Übertragen von Dateien). SSH ist der De-facto-Standard für die Verwaltung von Linux aus der Ferne.
Da SSH schon lange existiert und tief in das Linux-Ökosystem integriert ist, dominieren Befehlszeilenverwaltungsdienstprogramme die Linux-Serverumgebung. Die meisten Linux-Server-Distributionen haben keine grafische Benutzeroberfläche.
Verwendung von SSH-Befehlen in Linux
Genug geredet. Schauen wir uns an, was SSH kann, indem wir es zuerst in OpenSUSE Linux aktivieren. Verwenden Sie dazu den Paketmanager YaST. Um SSH mit YaST in OpenSUSE zu aktivieren:
- Klicken Sie auf das Startmenü, geben Sie Terminal ein und wählen Sie Konsole, sofern Sie den KDE-Desktop-Manager bei der Installation von OpenSUSE installiert haben.
- Im Terminal öffnen Sie YaST, indem Sie
sudo yast
ausführen. - Wenn Sie sich in YaST befinden, gehen Sie mit dem Pfeil nach unten zu System und dann mit dem Pfeil nach rechts zu Diensteverwaltung und drücken Sie Enter, um fortzufahren.
- Gehen Sie mit dem Pfeil nach unten zu sshd und drücken Sie
Alt+S
, um den SSH-Dienst zu starten. - Drücken Sie
Alt+R
, um den Startmodus von manuell auf beim Booten zu ändern. Dadurch wird sichergestellt, dass der SSH-Server-Dienst auch nach einem Neustart gestartet wird. - Drücken Sie
Alt+O
, um die Änderungen zu bestätigen und anzuwenden.
In der folgenden Animation können Sie diese Schritte in Aktion sehen.

Aktivieren von SSH durch die Firewall
Fast jede Linux-Distribution verfügt über eine Art Firewall zum Schutz wie Windows. Informationen zur Firewall von OpenSUSE finden Sie hier. Um sicherzustellen, dass Sie auf den SSH-Dienst remote von Windows aus zugreifen können, müssen Sie ihn durch die Firewall zulassen. Gehen Sie dazu wie folgt vor:
- Starten Sie im Terminal erneut YaST mit
sudo yast
. - Gehen Sie mit dem Pfeil nach unten zu Sicherheit und Benutzer und dann mit dem Pfeil nach rechts zu Firewall und drücken Sie Enter, um fortzufahren.
- Navigieren Sie zu Zonen –> Öffentlich und gehen Sie mit dem Pfeil nach rechts zum Bereich Dienste—Ports auf der rechten Seite.
- Gehen Sie mit dem Pfeil nach unten, um
ssh
in den Diensten zu finden. - Wählen Sie
ssh
mit der Leertaste aus und drücken SieAlt+D
, um die Auswahl hinzuzufügen. - Drücken Sie
Alt+A
, um die Änderungen zu akzeptieren.
Sie können alle diese Schritte oben visuell unten sehen.

Ähnlich wie Windows hat Linux verschiedene Vertrauensstufen, um Firewall-Regeln anzuwenden. Diese Stufen werden als Zonen bezeichnet. Windows hat standardmäßig öffentliche, Arbeits- und private Zonen. Linux hat viele weitere, aber standardmäßig die öffentliche Zone.
Verbindung zu Linux von Windows
Zum Glück hat Windows 10 heutzutage einen integrierten SSH-Client. Um eine Verbindung zu einem Linux-Host herzustellen, öffnen Sie eine Eingabeaufforderung (cmd) oder eine PowerShell-Konsole und geben Sie den Benutzernamen und die IP-Adresse oder den Hostnamen an.
Wenn alles gut läuft, sollte der SSH-Client Sie bitten, einen Fingerprint zu akzeptieren. Ein Fingerprint ist ein Identifikator, um sicherzustellen, dass jemand die Ziel-IP-Adresse nicht übernommen hat.
Wenn Sie Windows 7 verwenden, können Sie dennoch eine SSH-Verbindung zu Ihrem Linux-Host herstellen. Sie müssen nur den Microsoft SSH-Client von hier herunterladen. Dieser SSH-Client ist derselbe, den Windows 10 verwendet.
Sobald Sie „yes“ eingegeben und Ihr Passwort eingegeben haben, sind Sie mit Ihrem Server verbunden! Sie können jetzt die Befehlszeile verwenden, als ob Sie ein Terminal auf dem Computer selbst geöffnet hätten.
Belichten Sie SSH (Standardport 22) nicht über Ihren Router ans Internet. Bots durchsuchen das Internet ständig nach offenen SSH-Ports. Sobald ein Bot einen offenen Port findet, beginnt er, Passwörter zu spammen und versucht, sich gewaltsam Zugang zu verschaffen.
Aktivieren der Mausunterstützung in SSH unter Windows
Einer der großen Nachteile der Verwendung des nativen Windows 10 SSH-Clients (zumindest zum Zeitpunkt dieses Schreibens) ist das Fehlen von Mausunterstützung. Das bedeutet, dass du keine Maus in Midnight Commander verwenden kannst, wie du in einem früheren Blog-Beitrag gelernt hast.
Glücklicherweise kannst du seit der Version acht des OpenSSH Windows-Clients Mausunterstützung erhalten! Lass uns diesen Client installieren.
- Lade die neueste Version von OpenSSH-Win64 von hier herunter und entpacke die resultierende ZIP-Datei. Das Tutorial geht davon aus, dass du sie in ~\Downloads\OpenSSH-Win64 entpackst.
- Öffne eine PowerShell-Konsole und navigiere zu ~\Downloads\OpenSSH-Win64 mit dem Befehl
cd ~\Downloads\OpenSSH-Win64
. - Überprüfe die SSH-Client-Version, indem du den Befehl
.\\ssh -V
ausführst. Zum Zeitpunkt der Erstellung dieses Leitfadens sollte die Version 8.1.0.0-p1 sein. - Verbinde dich mit deinem Linux-Server, indem du
.\ssh <Benutzer>@<IP>
verwendest. - Nach dem Einloggen teste die Mausunterstützung, indem du den Befehl
mc
ausführst, um Midnight Commander zu starten und sicherzustellen, dass du eine Maus verwenden kannst.
Oben siehst du alle diese Schritte visuell dargestellt.
Überschreiben des Standard-SSH-Clients.
Wenn Sie die neue Version dauerhaft verwenden möchten, können Sie dies tun, müssen jedoch den standardmäßigen Windows 10 SSH-Client überschreiben. Dadurch wird sichergestellt, dass die neuere Version (mit Mausunterstützung) immer dann verwendet wird, wenn Sie ssh in der Befehlszeile ausführen.
Angenommen, Sie haben den Client im Ordner ~\Downloads\OpenSSH-Win64 extrahiert
- Verschieben Sie den extrahierten Ordner OpenSSH-Win64 in einen dauerhaften Ordner Ihrer Wahl. In diesem Tutorial wird C:\users\public\OpenSSH-Win64 verwendet.
- Gehen Sie zu Start und dann zu Ausführen und geben Sie sysdm.cpl ein oder öffnen Sie System in der Systemsteuerung.
- Klicken Sie im Register Erweitert auf Umgebungsvariablen.
- Klicken Sie unter Systemvariablen auf Path.
- Klicken Sie auf Neu, um einen neuen Pfad hinzuzufügen, und geben Sie den Ordnerpfad zum SSH-Client an (C:\users\public\OpenSSH-Win64 in diesem Fall).
- Klicken Sie auf Nach oben verschieben, bis er über dem Ordner %SystemRoot%\system32 steht. Dadurch wird sichergestellt, dass Windows zuerst hier nachschaut, wenn Sie
ssh
in der Befehlszeile eingeben. - Öffnen Sie eine PowerShell-Konsole und führen Sie
ssh -V
aus. Die Version sollte 8.1.0.0-p sein.
Diese Schritte sind nachstehend zusammengefasst.

Das Priorisieren eines Ordners über %SystemRoot%\system32 kann ein Sicherheitsrisiko darstellen. Wenn jemand Zugriff auf Ihren Computer hat, kann er beschließen, einen Virus in den Ordner OpenSSH-Win64 einzufügen und ihn als ein Windows-Dienstprogramm wie cd.exe zu benennen.
Sie sollten den Ordner OpenSSH-Win64 so einschränken, dass nur Administratoren Lesezugriff darauf haben.
- Klicken Sie mit der rechten Maustaste auf den Ordner OpenSSH-Win64 und wählen Sie Eigenschaften.
- Wechseln Sie zum Register Sicherheit und klicken Sie auf die Schaltfläche Erweitert.
- Klicken Sie auf Vererbung deaktivieren, um benutzerdefinierte Ordnerberechtigungen zu ermöglichen und zu verhindern, dass übergeordnete Ordner die Berechtigungen im OpenSSH-Win64-Ordner außer Kraft setzen.
- Wählen Sie Hinzufügen aus, suchen Sie die Gruppe Administratoren und geben Sie ihnen volle Rechte.
- Klicken Sie auf Hinzufügen, suchen Sie die Gruppe Jeder und geben Sie ihnen nur Lesezugriff.
- Aktivieren Sie das Kontrollkästchen Alle untergeordneten Objektberechtigungen ersetzen, um diese Einstellungen auf alle Dateien im OpenSSH-Win64-Ordner zu übertragen, und klicken Sie auf Anwenden.
- Testen Sie nun diese Berechtigungen, indem Sie eine neue Datei im OpenSSH-Win64-Ordner erstellen. Windows sollte eine Administratoraufforderung anzeigen.
Sie können alle diese Schritte oben grafisch dargestellt sehen.

Verwalten von getrennten Sitzungen mit Tmux
Ach, was für eine Qual! Sie sind gerade dabei, über SSH einen lang laufenden Befehl auszuführen und Ihre Internetverbindung bricht ab. Jetzt haben Sie keine Ahnung, in welchem Zustand sich der Linux-Server befindet! Ist der Befehl fertig? Wie bekommen Sie ihn zurück?
Getrennte Sitzungen sind ein legitimes Problem mit SSH und zum Glück gibt es eine einfache Lösung. Du benötigst einen Terminal-Multiplexer (tmux).
Tmux steht sowohl als Abkürzung für Terminal-Multiplexer als auch als Name des Programms selbst.
Tmux ist ein Sitzungsmanager für SSH. Er „hält“ eine Sitzung aufrecht, wenn du getrennt wirst, und lässt sie im Hintergrund weiterlaufen. Du kannst später zu dieser Sitzung zurückkehren oder sogar mehrere Sitzungen erstellen und zwischen ihnen wechseln.
Um getrennte Sitzungen mit tmux zu verwalten:
- Im Linux-Terminal lädst du das tmux-Dienstprogramm herunter und installierst es, indem du den Befehl
sudo zypper install -y tmux
ausführst, wie unten gezeigt:
Du kannst auch YaST verwenden, um das tmux-Dienstprogramm herunterzuladen.

Die meisten Linux-Distributionen haben einen unterschiedlichen Paketmanager für die Befehlszeile. OpenSUSE verwendet zypper. Arch verwendet pacman. Ubuntu verwendet apt. Red Hat verwendet dnf und yum. Glücklicherweise ist die Syntax für diese Paketmanager weitgehend ähnlich.
2. Öffnen Sie auf Ihrem Windows-Computer eine PowerShell-Konsole und stellen Sie eine SSH-Verbindung mit Ihrem Linux-Server her. In diesem Tutorial wird der Benutzername homelab und die IP-Adresse des Linux-Servers 192.168.134.169 verwendet.
3. Öffnen Sie tmux, indem Sie nach der Verbindungsaufnahme den Befehl tmux
ausführen. Sie sollten eine grüne Leiste am unteren Rand sehen
4. Führen Sie einen Befehl aus, der Text ausgibt. Es spielt keine Rolle welcher. In diesem Tutorial wird neofetch verwendet. Sie können auch ls
ausführen.
5. Trennen Sie die Sitzung, indem Sie PowerShell schließen. Mit dieser Aktion wird ein Verbindungsabbruch simuliert.
6. Stellen Sie erneut eine SSH-Verbindung zu Ihrem Linux-Server her.
7. Hängen Sie die alte Sitzung jetzt wieder an, indem Sie den Befehl tmux a
ausführen. Sie sollten immer noch die Ausgabe des vorherigen ls
-Befehls sehen. Hurra, kein Datenverlust durch die Unterbrechung!
Sie können alle diese Schritte visualisiert unten sehen.

Wenn Sie versuchen, das Dienstprogramm Midnight Commander innerhalb von
tmux
auszuführen, stellen Sie möglicherweise fest, dass Sie keine Mausunterstützung haben. Sie können das beheben, indem Sie stattdessenmc -x
ausführen.
Aktivierung von tmux beim Anmelden
Standardmäßig ist tmux nicht in allen SSH-Sitzungen verfügbar. Sie können das ändern, indem Sie tmux zwingen, sich bei jeder Anmeldung an Ihre SSH-Sitzung anzuschließen.
Vorausgesetzt, Sie sind mit Ihrem Linux-Server über SSH verbunden:
- Öffnen Sie das Dienstprogramm Midnight Commander mit mc.
2. Markieren Sie die Datei .bashrc und drücken Sie Bearbeiten.
Die Datei
.bashrc
ist ein Shell (Batch)-Skript, das jedes Mal ausgeführt wird, wenn Sie sich über die Befehlszeile anmelden.
3. Fügen Sie den folgenden Shell-Skript-Code am Ende der Textdatei ein.
4. Klicken Sie auf Beenden und speichern Sie, wenn Sie dazu aufgefordert werden.
5. Testen Sie die automatische Anbindung von tmux, indem Sie die SSH-Sitzung trennen und erneut verbinden. Sie sollten automatisch eine grüne Leiste am unteren Rand erhalten, die anzeigt, dass Sie mit einer tmux
-Sitzung verbunden sind!
Das ist nur ein kleiner Einblick in das, was tmux
kann. Es ist ein ziemlich leistungsfähiges Multitasking-Programm. Wenn Sie jeden Linux-Administrator nach ihrem meistgenutzten Befehl fragen, lautet die Antwort wahrscheinlich tmux
.
Zusammenfassung
Damit endet der neueste Beitrag in der Blog-Serie A Windows Guy in a Linux World. Bleiben Sie dran auf dem ATA-Blog für die nächste Installation, die ansteht!