GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein Windows-Typ in einer Linux-Welt:Einrichten des SSH-Befehls in Linux

Früher waren Linux und Windows Todfeinde, aber heutzutage verstehen sie sich viel besser. Tatsächlich können Sie SSH jetzt sogar nativ in Windows verwenden:sowohl als Client als auch als Server. Was tun Sie, wenn Sie ein Windows-Administrator sind, aber auch Linux-Computer verwalten müssen? Sie gewöhnen sich an (Secure Shell) SSH-Befehle unter Linux!

Dies ist Teil IV der Blogbeitragsreihe Ein Windows-Typ in einer Linux-Welt. Wenn Sie mehr über beliebte Linux-Konzepte erfahren möchten, lesen Sie unbedingt Teil I, Teil II und Teil III.

In diesem Beitrag erfahren Sie alles darüber, wie Sie SSH unter Linux aktivieren und Ihren Windows-SSH-Client so einrichten, dass er sich mit Remote-Linux-Servern verbindet.

Hinweis:Alle Beispiele verwenden OpenSUSE Linux.

Weg von der Desktop-Umgebung

Zurück im ersten Beitrag dieser Serie empfahl das Tutorial die Verwendung der KDE-Desktopumgebung. Als Sie das OpenSUSE-Setup durchgegangen sind, haben Sie 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, ist Ihnen möglicherweise das völlige Fehlen eines Desktops aufgefallen. Die Server-Edition der gängigsten Distributionen (wie OpenSUSE sowie Ubuntu Server und CentOS) ist wie Windows Server Core:kein nennenswerter Desktop.

Um zu verstehen, warum der Desktop in der Linux-Kultur normalerweise gemieden wird, müssen Sie die CLI und SSH verstehen.

SSH:Der Goldstandard der Fernverwaltung

SSH ist, wie viele andere Fernverwaltungsprotokolle, ein Client-Server-basiertes System. Ein Client verbindet sich remote über das Netzwerk mit einem Server und ermöglicht Ihnen, Befehle auszuführen (oder sogar Dateien zu übertragen). SSH ist der De-facto-Standard, wenn es um die Fernverwaltung von Linux geht.

Da es SSH schon lange gibt und tief in das Linux-Ökosystem eingebettet ist, dominieren Befehlszeilen-Verwaltungsprogramme die Linux-Serverumgebung. Die meisten Linux-Server-Distributionen haben keine grafische Oberfläche.

SSH-Befehle unter Linux verwenden

Genug Gerede. Lassen Sie uns sehen, was SSH tun kann, indem Sie es zuerst in OpenSUSE Linux aktivieren. Verwenden Sie dazu den YaST-Paketmanager. So aktivieren Sie SSH mit YaST in OpenSUSE:

  1. Klicken Sie auf das Startmenü, geben Sie Terminal ein und wählen Sie Konsole vorausgesetzt, Sie haben den KDE Desktop Manager bei der Installation von OpenSUSE installiert.
  2. Öffnen Sie im Terminal YaST, indem Sie sudo yast ausführen .
  3. Pfeile in YaST nach unten zu System , und navigieren Sie dann zu Services Manager und drücken Sie die Eingabetaste, um fortzufahren.
  4. Pfeil nach unten zu sshd, und drücken Sie alt+s um den SSH-Dienst zu starten.
  5. Drücken Sie alt+r um den Startmodus von manuell auf beim Booten zu ändern. Dadurch wird sichergestellt, dass der SSH-Serverdienst auch nach einem Neustart gestartet wird.
  6. Drücken Sie alt+o bis ok die Änderungen und wenden Sie sie an.

Sie können diese Schritte unten in Aktion sehen.

SSH durch die Firewall zulassen

Fast jede Linux-Distribution wird mit einer Art Firewall geliefert, um sie so zu schützen, wie es Windows tut. Hier können Sie mehr über die Firewall von OpenSUSE lesen. Um sicherzustellen, dass Sie von Windows aus remote auf den SSH-Dienst zugreifen können, müssen Sie ihn durch die Firewall zulassen. Dazu:

  1. Noch im Terminal starten Sie YaST erneut mit sudo yast .
  2. Pfeil nach unten zu Sicherheit und Benutzer und dann mit der Pfeiltaste zu Firewall und drücken Sie die Eingabetaste, um fortzufahren.
  3. Navigieren Sie zu Zonen –> Öffentlich und Pfeil hinüber zu den Services – Ports Bereich auf der rechten Seite.
  4. Pfeil nach unten, um ssh zu finden in den Diensten.
  5. Wählen Sie ssh mit der Leertaste und drücken Sie alt+d um die Auswahl hinzuzufügen.
  6. Drücken Sie alt+a um die Änderungen zu akzeptieren.

Sie können alle diese Schritte oben visuell unten dargestellt sehen.

Genau wie Windows hat Linux verschiedene Vertrauensstufen, um Firewall-Regeln anzuwenden. Diese Ebenen werden als Zonen bezeichnet. Windows hat standardmäßig öffentliche, geschäftliche und private Zonen. Linux hat viel mehr, aber standardmäßig die öffentliche Zone.

Von Windows aus eine Verbindung zu Linux herstellen

Glücklicherweise verfügt Windows 10 heutzutage über 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 für die Verbindung sowie die IP-Adresse oder den Hostnamen an.

> ssh @

Wenn alles gut geht, sollte der SSH-Client Sie auffordern, einen Fingerabdruck zu akzeptieren. Ein Fingerabdruck ist ein Identifikator, um sicherzustellen, dass jemand die Ziel-IP-Adresse nicht gekapert hat.

Wenn Sie Windows 7 ausführen, können Sie immer noch per SSH auf Ihren Linux-Host zugreifen. Sie müssen nur den Microsoft SSH-Client von hier herunterladen. Dieser SSH-Client ist derselbe, den Windows 10 verwendet.

Sobald Sie yes eingeben und geben Sie Ihr Passwort ein, Sie sind mit Ihrem Server verbunden! Sie können jetzt die Befehlszeile verwenden, als ob wir ein Terminal auf dem Computer selbst öffnen würden.

Stellen Sie SSH (Standardport 22) nicht über Ihren Router dem Internet zur Verfügung. Bots durchsuchen das Internet ständig Suche nach offenen SSH-Ports. Sobald ein Bot einen offenen Port findet, fängt er an, Passwörter zu spammen und versucht, mit Brute-Force-Angriffen hineinzukommen.

Mausunterstützung in SSH mit Windows aktivieren

Einer der großen Nachteile bei der Verwendung des nativen Windows 10-SSH-Clients (zumindest zum Zeitpunkt des Schreibens dieses Artikels) ist die fehlende Mausunterstützung. Das bedeutet, dass Sie in Midnight Commander keine Maus verwenden können, wie Sie in einem früheren Blogbeitrag erfahren haben.

Glücklicherweise können Sie ab Version acht des OpenSSH-Windows-Clients Mausunterstützung erhalten! Lassen Sie uns diesen Client installieren.

  1. Laden Sie die neueste Version von OpenSSH-Win64 von hier herunter und extrahieren Sie die resultierende ZIP-Datei. Das Tutorial geht davon aus, dass Sie es nach ~\Downloads\OpenSSH-Win64 extrahieren .
  2. Öffnen Sie eine PowerShell-Konsole und navigieren Sie zu ~\Downloads\OpenSSH-Win64 mit cd ~\Downloads\OpenSSH-Win64 .
  3. Überprüfen Sie die SSH-Client-Version, indem Sie .\\ssh -V ausführen . Zum Zeitpunkt der Erstellung dieses Handbuchs sollte die Version 8.1.0.0-p1 sein.
  4. SSH in Ihren Linux-Server mit .\ssh @ .
  5. Testen Sie nach der Anmeldung die Mausunterstützung, indem Sie mc ausführen um den Midnight Commander auszuführen, um sicherzustellen, dass Sie eine Maus verwenden können.

Sie können alle diese Schritte oben visuell unten dargestellt sehen.

Den Standard-SSH-Client überschreiben

Wenn Sie die neue Version dauerhafter verwenden möchten, können Sie dies tun; Sie müssen jedoch den standardmäßigen Windows 10-SSH-Client überschreiben. Dies stellt sicher, wann immer Sie ssh ausführen auf der Kommandozeile wird die neuere Version (mit Mausunterstützung) verwendet.

Angenommen, Sie haben den Client nach ~\Downloads\OpenSSH-Win64 extrahiert Ordner

  1. Verschieben Sie den extrahierten OpenSSH-Win64-Ordner in einen permanenten Ordner Ihrer Wahl. Dieses Tutorial verwendet C:\users\public\OpenSSH-Win64 .
  2. Gehen Sie zu Start und dann Ausführen und geben Sie sysdm.cpl ein oder öffnen Sie System über das Bedienfeld.
  3. Unter Erweitert Klicken Sie auf der Registerkarte Umgebungsvariablen .
  4. Unter Systemvariablen , klicken Sie auf Pfad .
  5. Klicken Sie auf Neu um einen neuen Pfad hinzuzufügen und den Ordnerpfad für den SSH-Client bereitzustellen (C:\users\public\OpenSSH-Win64 in diesem Fall).
  6. Klicken Sie auf Nach oben bis es über %SystemRoot%\system32 steht Mappe. Dies wird sichergestellt, wenn Sie ssh eingeben auf der Kommandozeile sucht Windows zuerst hier.
  7. Öffnen Sie eine PowerShell-Konsole und führen Sie ssh -V aus . Sie sollten die Version 8.1.0.0-p sehen .

Diese Schritte sind unten zusammengefasst.

Das Priorisieren eines Ordners über %SystemRoot%\system32 kann ein Sicherheitsrisiko sein. Wenn jemand Zugriff auf Ihren Computer hat, kann er entscheiden, einen Virus in den OpenSSH-Win64-Ordner einzufügen und ihn als Windows-Dienstprogramm wie cd.exe zu benennen .

Sie sollten den OpenSSH-Win64-Ordner so einschränken, dass er nur für alle außer Administratoren lesbar ist.

  1. Klicken Sie mit der rechten Maustaste auf den OpenSSH-Win64-Ordner und klicken Sie auf Eigenschaften .
  2. Unter der Sicherheit Klicken Sie auf die Registerkarte Erweitert Schaltfläche.
  3. Klicken Sie auf Vererbung deaktivieren um benutzerdefinierte Ordnerberechtigungen zuzulassen und zu verhindern, dass übergeordnete Ordner Berechtigungen im OpenSSH-Win64-Ordner überschreiben.
  4. Wählen Sie Hinzufügen , finden Sie die Administratoren Gruppe und geben Sie ihnen volle Rechte.
  5. Klicken Sie auf Hinzufügen , finden Sie Jeder Gruppe und geben Sie ihnen nur Leseberechtigungen.
  6. Wählen Sie die Berechtigung Alle untergeordneten Objekte ersetzen aus Kontrollkästchen, um diese Einstellungen an alle Dateien im OpenSSH-Win64-Ordner weiterzugeben; Klicken Sie auf Anwenden .
  7. Testen Sie nun diese Berechtigungen, indem Sie eine neue Datei im OpenSSH-Win64-Ordner erstellen. Windows sollte eine Administrator-Eingabeaufforderung erfordern.

Sie können alle diese Schritte oben visuell unten dargestellt sehen.

Getrennte Sitzungen mit Tmux verwalten

Ach, was für ein Schmerz! Sie sind auf halbem Weg mit der Ausführung eines langwierigen Befehls über SSH und Ihr Internet fällt aus. Jetzt haben Sie keine Ahnung, in welchem ​​​​Zustand sich der Linux-Server befindet! Ist es mit diesem Befehl erledigt? Wie bekommen Sie es zurück?

Getrennte Sitzungen sind ein legitimes Problem mit SSH und eines, für das es glücklicherweise eine einfache Lösung gibt. Sie benötigen einen Terminal-Multiplexer (tmux).

Tmux steht sowohl für die Abkürzung von Terminal Multiplexer als auch für den Namen des Programms selbst

Tmux ist ein Sitzungsmanager für SSH. Es „hält“ eine Sitzung fest, wenn Sie die Verbindung trennen, und lässt sie im Hintergrund weiterlaufen. Sie können sich später wieder mit dieser Sitzung verbinden oder sogar mehrere Sitzungen erstellen und zwischen ihnen wechseln.

So verwalten Sie getrennte Sitzungen mit tmux:

  1. Laden Sie im Linux-Terminal das Dienstprogramm tmux herunter und installieren Sie es, indem Sie sudo zypper install -y tmux ausführen wie unten zu sehen:

Sie können YaST auch verwenden, um das Dienstprogramm tmux herunterzuladen.

Die meisten Linux-Distributionen haben einen anderen Befehlszeilen-Paketmanager. OpenSUSE verwendet Zypper. Arch verwendet Pacman. Ubuntu verwendet apt. Red Hat verwendet dnf und yum. Glücklicherweise ist die Syntax für diese Paketmanager auf der ganzen Linie ziemlich ähnlich.

2. Öffnen Sie auf Ihrem Windows-Computer eine PowerShell-Konsole und SSH in Ihren Linux-Server. Das Tutorial verwendet den Benutzernamen homelab und eine Linux-Server-IP von 192.168.134.169.

ssh @

3. Öffnen Sie tmux, indem Sie tmux ausführen einmal verbunden. Sie sollten unten einen grünen Balken sehen

4. Führen Sie einen Befehl aus, der Text ausgibt. Es spielt keine Rolle, was es ist. Dieses Tutorial verwendet neofetch . Sie können ls ausführen auch.

5. Trennen Sie die Sitzung, indem Sie PowerShell schließen. Diese Aktion simuliert einen Dropout.

6. Verbinden Sie sich erneut über SSH mit Ihrem Linux-Server.

7. Verbinden Sie sich nun wieder mit der alten Sitzung, indem Sie tmux a ausführen Sie sollten immer noch die Ausgabe dieses vorherigen ls sehen Befehl. Hurra, kein Datenverlust durch Trennen!

Sie können alle diese Schritte oben visuell unten dargestellt sehen.

Wenn Sie versuchen, das Midnight Commander-Dienstprogramm innerhalb von tmux auszuführen , stellen Sie möglicherweise fest, dass Sie keine Mausunterstützung haben. Sie können das beheben, indem Sie mc -x ausführen stattdessen.

Aktivieren von tmux bei der Anmeldung

Standardmäßig ist tmux nicht in allen SSH-Sitzungen verfügbar. Sie können dies ändern, indem Sie tmux dazu zwingen, jedes Mal, wenn Sie sich anmelden, an Ihre SSH-Sitzung anzuhängen.

Angenommen, Sie sind per SSH mit Ihrem Linux-Server verbunden:

  1. Öffnen Sie das Midnight Commander-Dienstprogramm mit mc.

2. Markieren Sie .bashrc Datei und klicken Sie auf Bearbeiten .

Die .bashrc file ist ein Shell-Skript (Batch), das jedes Mal ausgeführt wird, wenn Sie sich über die Befehlszeile anmelden

3. Fügen Sie den folgenden Shell-Skriptcode am Ende der Textdatei hinzu.

if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

4. Klicken Sie auf Beenden und speichern Sie, wenn Sie dazu aufgefordert werden.

5. Testen Sie den automatischen tmux-Anhang, indem Sie die Verbindung zu Ihrer SSH-Sitzung trennen und erneut beitreten. Sie sollten unten automatisch einen grünen Balken sehen, der anzeigt, dass Sie mit tmux verbunden sind Sitzung!

Das kratzt wirklich nur an der Oberfläche dessen, was tmux ist tun kann, ist es ein ziemlich mächtiges Multitasking-Programm. Wenn Sie einen Linux-Administrator fragen, was sein am häufigsten verwendeter Befehl ist, ist es wahrscheinlich tmux .

Abschluss

Damit ist der neueste Beitrag im Ein Windows-Typ in einer Linux-Welt abgeschlossen Blogpost-Reihe. Verfolgen Sie den ATA-Blog für die nächste bevorstehende Installation!


Linux
  1. Linux-IP-Befehl

  2. Linux-cd-Befehl

  3. Verstecken Sie die versteckten Linux-Dateien in Windows

  4. Linux Befehl remote ausführen

  5. Windows-Äquivalent zum Linux-Befehl cksum

So übergeben Sie das Passwort an den SSH-Befehl in Linux

Verwendung von SSH-Befehlen in Linux/Unix-Systemen

Ein Windows-Typ in einer Linux-Welt:VS-Code und Remote-SSH

Ein Windows-Typ in einer Linux-Welt:Benutzer- und Dateiberechtigungen

Ein Windows-Typ in einer Linux-Welt:YaST und der Desktop

Einrichten einer glänzenden Entwicklungsumgebung in Linux unter Windows 10