Verwenden von SSH zum sicheren Verwenden der Remotedesktopverbindung mit Windows
Betriebsumgebung
- Remote-Verbindung zu Windows
-
- Windows 11
- Remote-Verbindung von Windows
-
- Windows 10 (Englisch)
- OpenSSH
-
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Voraussetzungen
- Remote-Verbindung zu Windows
-
- Windows 10 oder höher (Pro oder andere Edition erforderlich). Dies gilt jedoch nicht, wenn OpenSSH separat vorbereitet werden kann.
- Windows Server 2019 oder höher. Dies gilt jedoch nicht, wenn OpenSSH separat vorbereitet werden kann.
- Remote-Verbindung von Windows
-
- Windows (die meisten Versionen sind möglich)
- Windows Server (die meisten Versionen sind möglich)
Zuerst
Nachdem Sie eine Windows-Umgebung im Internet in der Cloud oder im VPS erstellt haben, verwenden Sie häufig eine Remote-Desktop-Verbindung, um das Remote-Windows-Ziel zu betreiben.
Bei der Remotedesktopverbindung wird der Kommunikationsinhalt verschlüsselt, und wenn der Benutzername und das Kennwort nicht durchgesickert sind, melden sich andere Benutzer nicht ohne Erlaubnis an. Es besteht immer die Sorge, dass die Leute versuchen, sich von überall aus einzuloggen.
Einige große Clouds verfügen über Firewalls, die von virtuellen Maschinen getrennt sind, und es gibt eine Funktion zum Einschränken der Verbindungsquelle. Diese Funktionen sind möglicherweise nicht in allen Diensten verfügbar. Gerade in Umgebungen, die mit einem geringen Budget aufgebaut sind, gibt es viele Fälle, in denen solche Funktionen nicht verfügbar sind.
Daher möchte ich dieses Mal die Verbindungsquelle so weit wie möglich einschränken, indem ich die SSH-Funktion hinzufüge. Da der private Schlüssel und der öffentliche Schlüssel verwendet werden, kann die Möglichkeit, sich aus einer anderen Umgebung aus der Ferne anzumelden, so weit wie möglich minimiert werden, solange der private Schlüssel nicht durchsickert.
In diesem Fall werden wir OpenSSH verwenden, um die SSH-Umgebung zu erstellen.
Erstellen einer Windows-Remotezielumgebung
Erstellen Sie eine Windows-Umgebung, in der Sie eine Remoteverbindung über das Internet herstellen können. Es spielt keine Rolle, wo es erstellt wird, solange es über das Internet erfolgt, aber für diese Überprüfung wird es als virtueller Computer in Microsoft Azure erstellt. Die Schritte zum Erstellen in Azure sind für diesen Tipp nicht relevant, daher lasse ich sie weg. Da dieses Mal Port 22 verwendet wird, stellen Sie bei Verwendung von Azure sicher, dass die Kommunikation mit Port 22 über die Einstellungen des virtuellen Computers in Azure erfolgt.
Wenn Sie in einer anderen Umgebung als Azure erstellen, stellen Sie sicher, dass Sie sich in einer Position befinden, in der Sie eine Remotedesktopverbindung mit Windows für Ihre Umgebung herstellen können.
Darüber hinaus zielt die Windows-Version auf Windows 10 oder höher oder Windows Server 2019 oder höher ab, was den Aufbau einer OpenSSH-Umgebung erleichtert. Es kann in einer früheren Umgebung implementiert werden, aber es erfordert etwas mehr Zeit und Mühe, da Sie OpenSSH separat herunterladen und einrichten müssen.
In diesem Fall ist die Vorgehensweise die gleiche wie bei SFTP, daher beachten Sie bitte die folgenden Tipps.
OpenSSH einrichten
Von hier aus werden wir in der Remote-Windows-Umgebung arbeiten. Stellen Sie zunächst eine Verbindung mit dem Remoteziel über eine Remotedesktopverbindung her. Wenn Ihre Cloud oder Ihr VPS eine Konsole bereitstellt, können Sie diese verwenden. Da wir dieses Mal in einer Windows 11-Umgebung arbeiten, können die Schritte in anderen Versionen etwas anders sein.
Öffnen Sie das Startmenü, und wählen Sie Einstellungen aus.
Wählen Sie eine App aus.
Wählen Sie Optionale Funktionen aus.
Wählen Sie Features anzeigen aus.
Es gibt "OpenSSH Server" etwas weiter unten in der Liste, also überprüfen Sie es und klicken Sie auf "Weiter".
Klicken Sie auf Installieren.
Wenn die Installation abgeschlossen ist und "OpenSSH Server" zur Liste unten hinzugefügt wird, sind Sie fertig.
Dienstkonfiguration für OpenSSH
Klicken Sie mit der rechten Maustaste auf das Startmenü, und wählen Sie Computerverwaltung aus.
Wählen Sie Dienste aus der Liste auf der linken Seite aus.
Suchen Sie "OpenSSH SSH Server" in der mittleren Liste, klicken Sie mit der rechten Maustaste und wählen Sie "Eigenschaften".
Wenn wir uns aus der Ferne verbinden, möchten wir, dass der OpenSSH-Server läuft, also stellen Sie den "Starttyp" auf "Automatisch".
Da es im Moment nicht läuft, werde ich es hier starten, inklusive Einstellung.
Klicken Sie nach dem Start auf die Schaltfläche OK, um sie zu schließen. Es sollte in der Liste ausgeführt werden.
OpenSSH konfigurieren
Im Anfangszustand ist die Authentifizierung mit privatem Schlüssel deaktiviert, also legen Sie sie fest. Öffnen Sie den folgenden Ordner im Explorer.
- C:\ProgramData\ssh
Der obige Ordner kann jedoch ein versteckter Ordner sein, also machen Sie ihn bitte sichtbar, indem Sie die Explorer-Optionen festlegen.
Im Ordner befindet sich eine Datei mit dem Namen, öffnen Sie sie also mit sshd_config
einem Texteditor wie Notepad.
Da wir dieses Mal Änderungen vornehmen werden, kopieren und duplizieren Sie diese bitte vor der Änderung als sshd_config_old
Backup.
PubkeyAuthentication yes
Suchen:
Dieses Element ist eine Einstellung, mit der festgelegt wird, ob die Authentifizierung mit geheimem Schlüssel aktiviert werden soll.
Standardmäßig ist es deaktiviert und es wird angezeigt, aber es ist auskommentiert, yes
also heben Sie die Auskommentierung auf.
Vor der Änderung
#PubkeyAuthentication yes
Nach dem Wechsel
PubkeyAuthentication yes
PasswordAuthentication yes
Suchen:
Dieses Element ist eine Einstellung, mit der festgelegt wird, ob die Kennwortauthentifizierung aktiviert werden soll.
Sie ist standardmäßig aktiviert, und selbst wenn Sie die Authentifizierung mit privatem Schlüssel aktivieren, ist sie aus Sicherheitssicht bedeutungslos, wenn sie aktiviert bleibt, also kommentieren Sie sie aus und no
legen Sie fest.
Vor der Änderung
#PasswordAuthentication yes
Nach dem Wechsel
PasswordAuthentication no
Kommentieren Sie die folgende Zeile am Ende aus: Dies ist die Schlüsseleinstellung für die Gruppe "Administratoren", die wir deaktivieren werden, da wir in diesem Fall benutzerspezifische Anmeldungen unterstützen.
Vor der Änderung
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Nach dem Wechsel
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
Nachdem Sie die Datei nach OpenSSH SSH Server
der Änderung gespeichert haben, starten Sie den Dienst neu, um die Einstellungen widerzuspiegeln.
Wenn Sie den Port ändern möchten
Wenn Sie den SSH-Port ändern möchten, ändern Sie Folgendes.
Vor der Änderung
#Port 22
Nach dem Wechsel
#Port <任意の番号>
Durch das Ändern der Portnummer wird der Standardport nicht angegriffen, was zu einer höheren Sicherheit führt. Auf der anderen Seite erhöht es die Komplexität der Operation, so dass Sie vorsichtig sein müssen.
Wenn Sie die Portnummer ändern, müssen Sie beim Herstellen der Verbindung einen anderen Port als 22 angeben.
Erstellen von privaten und öffentlichen Schlüsseln
Dies ist eine clientseitige Aufgabe. Es spielt jedoch keine Rolle, wo Sie arbeiten. Achten Sie jedoch darauf, dass der von Ihnen erstellte private Schlüssel nicht preisgegeben wird.
Wenn Sie Windows 10 oder höher, Windows Server 2019 oder höher haben, ist der OpenSSH-Client standardmäßig installiert, sodass Sie ihn einfach mit einem Befehl erstellen können. In anderen Umgebungen müssen Sie einen separaten OpenSSH-Client installieren oder ein separates Tool verwenden.
Die folgenden Tipps gelten für SFTP, aber bitte beachten Sie sie für die Einrichtung eines OpenSSH-Clients.
Starten Sie in der Clientumgebung eine Eingabeaufforderung, PowerShell, ein Terminal oder ein beliebiges Tool, das Befehle ausführen kann.
Da Sie eine Datei erstellen, wechseln cd
Sie mit einem Befehl in ein beliebiges Verzeichnis.
Führen Sie den folgenden Befehl aus:
ssh-keygen -t rsa -f id_rsa
Sie können eine Passphrase (Passwort) für den Schlüssel festlegen, also geben Sie diese bitte bei Bedarf ein. Wenn Sie eine Passphrase festlegen, wird die Sicherheit erhöht, aber es erhöht den Zeit- und Arbeitsaufwand für die Eingabe der Passphrase im späteren Prozess.
Es wurden ein öffentlicher Schlüssel (id_rsa.pub) und ein privater Schlüssel (id_rsa) erstellt.
Der öffentliche Schlüssel (id_rsa.pub) wird später auf dem Remote-Ziel abgelegt. Der private Schlüssel kann sich an einer beliebigen Stelle auf dem Remoteclient befinden, muss sich jedoch in einem Ordner befinden, auf den nur das Konto zugreifen kann, das aus Sicherheitsgründen verwendet wird. Grundsätzlich denke ich, dass es kein Problem ist, wenn Sie es clientseitig in den folgenden Ordner legen. Wenn Sie den OpenSSH-Client verwenden, wird dieser standardmäßig zu diesem Ordner navigieren.
C:\Users\<ユーザー名>\.ssh
Wenn Sie den obigen Ordner nicht im Explorer erstellen können, können Sie ihn mit dem folgenden Befehl erstellen.
cd C:\Users\<ユーザー名>
mkdir .ssh
Platzierung von öffentlichen Schlüsseln
Hierbei handelt es sich um eine Fernbedienung.
Platzieren Sie den erstellten öffentlichen Schlüssel (id_rsa.pub) auf dem Remote-Ziel.
Verschieben Sie diese Datei in den folgenden Ordner: <ユーザー名>
ist der Name des Benutzerkontos, bei dem Sie sich anmelden, wenn Sie tatsächlich eine Remoteverbindung herstellen.
C:\Users\<ユーザー名>\.ssh
Wenn Sie keinen Ordner haben und keinen Ordner im Explorer erstellen können, können Sie mit dem folgenden Befehl einen Ordner erstellen.
cd C:\Users\<ユーザー名>
mkdir .ssh
Ändern Sie die bereitgestellte Datei mit dem öffentlichen Schlüssel authorized_keys
in . Das wars.
Abhängig von Ihrer Umgebung verfügen Sie möglicherweise bereits authorized_keys
über die Datei. Dies kann der Fall sein, wenn Sie eine SSH-Verbindung für andere Zwecke eingerichtet haben.
In diesem Fall authorized_keys
haben Sie die Datei registriert, indem Sie die Datei mit Editor usw. öffnen und id_rsa.pub
den Inhalt der id_rsa.pub in der nächsten Zeile des authorized_keys auflisten.
Sie können mehrere öffentliche Schlüssel in authorized_keys registrieren.
Verbinden Sie sich mit SSH
Beim Herstellen einer Verbindung mit dem OpenSSH-Befehl
Es gibt verschiedene Möglichkeiten, sich mit SSH zu verbinden, aber beginnen wir mit einer befehlsbasierten Verbindung. Tatsächlich ist die Verbindung mit der geringsten Anzahl von Schritten auf Befehl. Als Voraussetzung muss der OpenSSH-Client installiert sein.
Starten Sie das Befehlstool Ihrer Wahl (Eingabeaufforderung, PowerShell, Terminal).
Geben Sie den folgenden Befehl ein:
Befehlsformat
ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>
Im Folgenden finden Sie eine Erläuterung der Parameter. Stellen Sie es entsprechend Ihrer Umgebung ein.
Name Beschreibungdes | Variablenparameters | |
---|---|---|
ssh | Eine Deklaration zur Verwendung von SSH mit OpenSSH. | |
-Ich | Eine Deklaration zur Verwendung einer Datei mit privatem Schlüssel. | |
< Dateipfad des privaten Schlüssels> | ● | Beschreiben Sie den Speicherort der Datei mit dem privaten Schlüssel, die Sie erstellt haben. C:\Users\<ユーザー名>\.ssh Der Pfad ist optional. Andernfalls ist ein absoluter oder relativer Pfad erforderlich. |
-L | Diese Deklaration gibt den Port an, der lokal und remote verwendet werden soll, wenn eine Verbindung zu einem Remoteziel hergestellt wird. | |
< lokalen Freihafen> | ● | Für die Remotedesktopverbindung wird in der Regel Port 3389 verwendet, Sie können jedoch eine Verbindung über einen beliebigen Port herstellen. Es spielt keine Rolle, um welche Nummer es sich handelt, solange es kostenlos ist. |
127.0.0.1 | Dies ist die Host-IP-Adresse, die erkennt, von wo aus das Remoteziel verbunden ist. Grundsätzlich ist 127.0.0.1 in Ordnung. | |
3389 | Die Portnummer, die am Remoteziel verwendet werden soll. Das Remoteziel ist in der Regel über Port 3389 mit einer Remotedesktopverbindung verbunden, sodass es so belassen werden kann, wie es ist. | |
< Name des Benutzerkontos, mit dem Sie eine Verbindung herstellen möchten> | ● | Geben Sie an, mit welchem Konto Sie am Remoteziel eine Verbindung herstellen möchten. |
< IP-Adresse oder Hostname des Servers, mit dem eine Verbindung hergestellt werden soll> | ● | Gibt den Remotezielserver an. |
Beispiel-Eingabe
ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194
Beim ersten Mal werden Sie zur Eingabe einer Taste aufgefordert, also yes
geben Sie die Eingabetaste ein und drücken Sie die Eingabetaste.
Wenn Sie eine Passphrase für Ihren privaten Schlüssel festgelegt haben, müssen Sie diese eingeben.
Folgendes befindet sich in einem verbundenen Zustand. Sie können sehen, dass der Benutzer auf der Serverseite angezeigt wird, nicht der Client. Während dieses Fenster angezeigt wird, ist es verbunden, also schließen Sie es bitte nicht. Wenn Sie es schließen, wird die Verbindung unterbrochen.
Beim Herstellen einer Verbindung mit PuTTY
Hier werden wir versuchen, uns mit einem Tool namens PuTTY mit SSH zu verbinden.
Konvertieren des privaten Schlüssels
Wenn Sie PuTTY verwenden, müssen Sie zunächst den privaten Schlüssel konvertieren. Ich denke, es gibt "puttygen .exe" im angehängten Tool, also starten Sie es bitte.
Wählen Sie "Conversions -> Importtaste" aus dem Menü.
Wählen Sie den privaten Schlüssel aus, den Sie erstellt haben, in diesem Fall "id_rsa".
Wenn Sie eine Passphrase festgelegt haben, geben Sie diese ein.
Wählen Sie "Datei -> Privaten Schlüssel speichern" aus dem Menü.
「. .ppk"-Datei.
Einmal erstellt, sind Sie fertig.
Konfigurieren von PuTTY
Starten Sie putty.exe.
Geben Sie die IP-Adresse der Umgebung ein, mit der Sie eine Verbindung herstellen möchten. Wenn Sie über eine Domäne verfügen, können Sie eine Verbindung mit einem Domänennamen herstellen.
Wählen Sie Verbindung -> Daten aus dem Menü auf der linken Seite. Geben Sie im Feld Benutzername für die automatische Anmeldung den Kontonamen der Umgebung ein, mit der Sie eine Verbindung herstellen möchten.
Wählen Sie im Menü auf der linken Seite Verbindung -> SSH -> Tunnel aus. Geben Sie jede von ihnen in das Eingabefeld unten ein und klicken Sie auf die Schaltfläche "Hinzufügen".
Wert desHinweise zum | Parameternamens | |
---|---|---|
Quell-Port | 13389 | Jeder freie Port ist ausreichend. Ich werde es später verwenden |
Bestimmungsort | 127.0.0.1:3389 |
Wenn es hinzugefügt wird, sollte es wie folgt aussehen:
Wählen Sie als Nächstes "Verbindung -> SSH -> Authentifizierung -> Cledentioals" aus dem Menü auf der linken Seite und klicken Sie auf die Schaltfläche "Durchsuchen" für "Private Key-Datei für die Authentifizierung".
Wählen Sie den privaten Schlüssel aus, den Sie gespeichert haben.
Wählen Sie im Menü auf der linken Seite "Sitzung", geben Sie einen Namen Ihrer Wahl für "Sitzungen speichern" ein und klicken Sie auf die Schaltfläche "Speichern". Ab dem nächsten Mal ist es in Ordnung, wenn Sie diese Einstellung laden.
Nachdem Sie den Speichervorgang bestätigt haben, klicken Sie auf die Schaltfläche "Öffnen".
Der folgende Bildschirm wird angezeigt, wenn Sie zum ersten Mal eine Verbindung herstellen. Klicken Sie auf die Schaltfläche Akzeptieren.
Es wird ein Bildschirm angezeigt, der wie eine Eingabeaufforderung aussieht. Wenn Sie eine Passphrase für den privaten Schlüssel haben, geben Sie diese ein.
Wenn sich der Anzeigeinhalt wie unten gezeigt ändert, wird es verbunden. Sie können sehen, dass der Benutzer auf der Serverseite angezeigt wird, nicht der Client. Während dieses Fenster angezeigt wird, ist es verbunden, also schließen Sie es bitte nicht. Wenn Sie es schließen, wird die Verbindung unterbrochen.
Stellen Sie eine Remotedesktopverbindung mit SSH her
Lassen Sie uns nun eine Remotedesktopverbindung herstellen, während Sie mit SSH verbunden sind.
Beim Herstellen einer Verbindung ist der Computerteil nicht die tatsächliche Remote-Adresse, sondern "localhost:< > der in der SSH-Verbindung angegebene Portname". Im Beispiel wurde 13389 angegeben, also stellen wir hier eine Verbindung zu "localhost:13389" her.
Wenn der Authentifizierungsbildschirm angezeigt wird, können Sie feststellen, dass die Verbindung abgeschlossen ist. Geben Sie Ihren Benutzernamen und Ihr Passwort ein, um eine Verbindung herzustellen.
Wenn Sie sich auf diese Weise verbinden können, haben Sie es geschafft.
Deaktivieren Sie reguläre Remotedesktopverbindungen in den Firewall-Einstellungen
Zum Zeitpunkt des vorherigen Elements können Sie jetzt über SSH eine Verbindung mit einem Remote-Desktop herstellen. In diesem Zustand wurde "Remotedesktopverbindung über SSH" jedoch nur zu "Normale Remotedesktopverbindung" hinzugefügt. In Bezug auf die Sicherheit fügt es nichts hinzu. Als nächstes gilt es also, eine "normale Remote-Desktop-Verbindung" zu verhindern.
Wenn Sie diese Einstellung vornehmen, können Sie keine Verbindung herstellen, mit Ausnahme der "Remotedesktopverbindung über SSH", d. h., wenn Sie mit den Einstellungen herumspielen, haben Sie möglicherweise nicht die Möglichkeit, eine Remoteverbindung herzustellen. Prüfen Sie daher unbedingt im Voraus, ob eine "Remote-Desktop-Verbindung per SSH" möglich ist, und können Sie die Remote-Umgebung auch dann mit anderen Mitteln betreiben, wenn der Client, mit dem Sie eine Verbindung herstellen möchten, verschwindet.
Konfigurieren Sie hier die Firewall-Einstellungen unter "Remotedesktopverbindung über SSH". Dies liegt daran, dass, wenn Sie den Vorgang mit einer "normalen Remote-Desktop-Verbindung" durchführen, die Verbindung in dem Moment getrennt wird, in dem Sie die Firewall einrichten.
Zeigen Sie die Windows Defender-Firewall mit erweiterter Sicherheit an. Je nach Windows-Version variiert die Position des Displays, daher zeigen Sie es bitte entsprechend dieser Version an.
Wählen Sie im Menü auf der linken Seite Eingehende Regeln aus.
Suchen Sie in der mittleren Liste nach "Remote Desktop - Benutzermodus (TCP In)" und öffnen Sie dessen Eigenschaften.
Wählen Sie die Registerkarte Bereich aus, ändern Sie die lokale IP-Adresse in Diese IP-Adressen, und klicken Sie auf die Schaltfläche Hinzufügen.
Geben Sie 127.0.0.1 ein, und klicken Sie auf die Schaltfläche OK. Dadurch werden Remotedesktopverbindungen von einem anderen Ort als 127.0.0.1 verhindert. 127.0.0.1 ist die IP-Adresse, die auf Ihren Computer verweist. Wenn Sie den falschen Wert eingeben, können Sie möglicherweise von überall aus eine Verbindung herstellen, seien Sie also vorsichtig.
Klicken Sie zur Bestätigung auf die Schaltfläche OK.
Das allein ist vorerst eine Gegenmaßnahme, aber stellen wir auch "Remote Desktop - User Mode (UDP Receive)" ein.
Stellen Sie sicher, dass Sie keine Remoteverbindung mit etwas anderem als SSH herstellen können
Versuchen Sie nun, eine Remotedesktopverbindung von einem anderen PC aus herzustellen, der kein SSH verwendet.
Wenn Sie eine Verbindung herstellen können, wird der Authentifizierungsbildschirm angezeigt. Es ist in Ordnung, wenn Sie bestätigen können, dass die Verbindung nicht hergestellt werden kann, wie unten gezeigt.
Zusammenfassung
Mit dem neuesten Windows ist es nun einfach, einen SSH-Server einzuführen. Durch das Hinzufügen von Einstellungen können Sie jetzt ganz einfach die Sicherheit Ihrer Remote-Desktop-Verbindung erhöhen. Da es jedoch nur für Sicherheitsmaßnahmen in Windows selbst zuständig ist, Wenn Sie es sicherer machen möchten, ist es meiner Meinung nach besser, einen separaten SSH-Server oder eine Firewall einzurichten, bevor Sie sich mit Windows verbinden.
Außerdem können Sie die Sicherheit mithilfe von SSH streng einstellen, aber wenn es zu schwierig ist, kann aufgrund eines Bedienungsfehlers niemand eine Verbindung herstellen. Achten Sie darauf, dass Sie nicht damit enden.