Brug SSH til sikkert at bruge Forbindelse til Fjernskrivebord til Windows

Side opdateret :
Dato for oprettelse af side :

Driftsmiljø

Fjernforbindelse til Windows
  • Windows 11
Fjernforbindelse fra Windows
  • Windows 10
OpenSSH
  • OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Forudsætninger

Fjernforbindelse til Windows
  • Windows 10 eller nyere (Pro eller anden udgave kræves). Dette gælder dog ikke, hvis OpenSSH kan fremstilles separat.
  • Windows Server 2019 eller nyere. Dette gælder dog ikke, hvis OpenSSH kan fremstilles separat.
Fjernforbindelse fra Windows
  • Windows (de fleste versioner er mulige)
  • Windows Server (de fleste versioner er mulige)

Først

Når du har bygget et Windows-miljø på internettet i skyen eller VPS, bruger du ofte en fjernskrivebordsforbindelse til at betjene den eksterne Windows-destination.

I fjernskrivebordsforbindelse krypteres kommunikationsindholdet, og hvis brugernavnet og adgangskoden ikke lækkes, logger andre ikke ind uden tilladelse. Der er altid bekymring for, at folk vil forsøge at logge ind hvor som helst.

Nogle større skyer har firewalls adskilt fra virtuelle maskiner, og der er en funktion til at begrænse forbindelseskilden. Disse funktioner er muligvis ikke tilgængelige i alle tjenester. Især i miljøer, der er bygget på et lavt budget, er der mange tilfælde, hvor sådanne funktioner ikke er tilgængelige.

Derfor vil jeg denne gang begrænse forbindelseskilden så meget som muligt ved at tilføje SSH-funktionen . Da den private nøgle og den offentlige nøgle bruges, så længe den private nøgle ikke lækkes, kan muligheden for at logge ind eksternt fra et andet miljø minimeres så meget som muligt.

I dette tilfælde vil vi bruge OpenSSH til at opbygge SSH-miljøet.

Byg et Windows-fjerndestinationsmiljø

Byg et Windows-miljø, der giver dig mulighed for at oprette fjernforbindelse via internettet. Det betyder ikke noget, hvor det er bygget, så længe det går over internettet, men til denne verifikation vil det blive bygget som en virtuel maskine på Microsoft Azure. Trinnene til at bygge videre på Azure er ikke relevante for dette tip, så jeg vil udelade dem. Da port 22 bruges denne gang, skal du sørge for, at port 22-kommunikation passerer gennem indstillingerne for den virtuelle maskine på Azure, hvis du bruger Azure.

Hvis du bygger i et andet miljø end Azure, skal du sørge for, at du er i en position, hvor du kan oprette en fjernskrivebordsforbindelse til Windows for dit miljø.

Derudover er Windows-versionen målrettet mod Windows 10 eller nyere eller Windows Server 2019 eller nyere, hvilket gør det nemt at opbygge et OpenSSH-miljø. Det kan implementeres i et tidligere miljø, men det tager lidt mere tid og kræfter, fordi du skal downloade og konfigurere OpenSSH separat.

I så fald er proceduren den samme som for SFTP, så se følgende tip.

Opsætning af OpenSSH

Herfra arbejder vi i det eksterne Windows-miljø. Opret først forbindelse til fjerndestinationen med en fjernskrivebordsforbindelse. Hvis din sky eller VPS leverer en konsol, kan du bruge den. Da vi opererer i et Windows 11-miljø denne gang, kan trinene være lidt anderledes i andre versioner.

Åbn Start-menuen, og vælg Indstillinger.

Vælg en app.

Vælg Valgfrie funktioner.

Vælg Vis funktioner.

Der er "OpenSSH Server" lidt lavere på listen, så tjek det og klik på "Næste".

Klik på Installer.

Når installationen er færdig, og "OpenSSH Server" føjes til listen nedenfor, er du færdig.

Tjenestekonfiguration til OpenSSH

Højreklik på Start-menuen, og vælg Computeradministration.

Vælg Tjenester på listen til venstre.

Find "OpenSSH SSH Server" i den midterste liste, højreklik og vælg "Egenskaber".

Når vi opretter forbindelse eksternt, ønsker vi, at OpenSSH-serveren skal køre, så indstil "Starttype" til "Automatisk".

Da det ikke kører i øjeblikket, vil jeg starte det her, inklusive at indstille det.

Når den er lanceret, skal du klikke på OK knappen for at lukke den. Det skal køre på listen.

Konfiguration af OpenSSH

I den oprindelige tilstand er godkendelse med privat nøgle deaktiveret, så indstil den. Åbn følgende mappe i Explorer.

  • C:\ProgramData\ssh

Ovenstående mappe kan dog være en skjult mappe, så gør den synlig ved at indstille Explorer-indstillingerne.

Der er en fil kaldet i mappen, så åbn den sshd_config med en teksteditor som Notesblok. Da vi foretager ændringer denne gang, skal du kopiere og duplikere som en sshd_config_old sikkerhedskopi før ændringen.

PubkeyAuthentication yes Søge: Dette element er en indstilling for, om godkendelse af hemmelig nøgle skal aktiveres. Som standard er det deaktiveret, og der står , men det er kommenteret, yes så fjern kommentarer til det.

Før ændringen

#PubkeyAuthentication yes

Efter ændringen

PubkeyAuthentication yes

PasswordAuthentication yes Søge: Dette element er en indstilling for, om adgangskodegodkendelse skal aktiveres. Det er aktiveret som standard, og selvom du aktiverer godkendelse af privat nøgle, er det meningsløst ud fra et sikkerhedsmæssigt synspunkt, hvis det forbliver aktiveret, så fjern kommentarer til det og no indstil .

Før ændringen

#PasswordAuthentication yes

Efter ændringen

PasswordAuthentication no

Kommenter følgende linje nær slutningen: Dette er nøgleindstillingen for administratorgruppen, og vi deaktiverer den, fordi vi i dette tilfælde understøtter login pr. bruger.

Før ændringen

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Efter ændringen

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Når du har gemt filen efter OpenSSH SSH Server ændringen, skal du genstarte tjenesten for at afspejle indstillingerne.

Hvis du vil ændre porten

Hvis du vil ændre SSH-porten, skal du ændre følgende.

Før ændringen

#Port 22

Efter ændringen

#Port <任意の番号>

Ved at ændre portnummeret vil standardporten ikke blive angrebet, hvilket vil føre til stærkere sikkerhed. På den anden side øger det operationens kompleksitet, så du skal være forsigtig.

Hvis du ændrer portnummeret, skal du angive en anden port end 22, når du opretter forbindelse.

Oprettelse af private og offentlige nøgler

Dette er en opgave på klientsiden. Det betyder dog ikke rigtig noget, hvor du arbejder i. Vær dog forsigtig med ikke at lække den private nøgle, du oprettede.

Hvis du har Windows 10 eller nyere, Windows Server 2019 eller nyere, er OpenSSH-klienten installeret som standard, så du nemt kan oprette den med en kommando. I andre miljøer skal du installere en separat OpenSSH-klient eller bruge et separat værktøj.

Følgende tip er til SFTP, men se dem for opsætning af en OpenSSH-klient.

I klientmiljøet skal du starte en kommandoprompt, PowerShell, terminal eller ethvert værktøj, der kan udføre kommandoer.

Da du opretter en fil, skal du flytte cd til en hvilken som helst mappe med en kommando.

Kør følgende kommando:

ssh-keygen -t rsa -f id_rsa

Du kan indstille en adgangssætning (adgangskode) til nøglen, så indtast den om nødvendigt. Hvis du angiver en adgangssætning, forbedres sikkerheden, men det øger tiden og kræfterne ved indtastning af adgangssætningen i den senere proces.

Der er oprettet en offentlig nøgle (id_rsa.pub) og en privat nøgle (id_rsa).

Den offentlige nøgle (id_rsa.pub) placeres senere på fjerndestinationen. Den private nøgle kan placeres hvor som helst på fjernklienten, men den skal være placeret i en mappe, der kun kan tilgås af den konto, der bruges til sikkerhedsformål. Grundlæggende tror jeg, at der ikke er noget problem, hvis du placerer det i den følgende mappe på klientsiden. Hvis du bruger OpenSSH-klienten, vil den som standard søge til denne mappe.

  • C:\Users\<ユーザー名>\.ssh

Hvis du ikke kan oprette ovenstående mappe i Explorer, kan du oprette den med følgende kommando.

cd C:\Users\<ユーザー名>
mkdir .ssh

Placering af offentlige nøgler

Dette er en fjernbetjening. Placer den oprettede offentlige nøgle (id_rsa.pub) på fjerndestinationen. Flyt denne fil til følgende mappe: <ユーザー名> er navnet på den brugerkonto, du vil logge ind på, når du rent faktisk opretter fjernforbindelse.

  • C:\Users\<ユーザー名>\.ssh

Hvis du ikke har en mappe og ikke kan oprette en mappe i Stifinder, kan du oprette en mappe med følgende kommando.

cd C:\Users\<ユーザー名>
mkdir .ssh

Skift den installerede offentlige nøglefil authorized_keys til . Sådan.

Afhængigt af dit miljø har du muligvis allerede authorized_keys filen. Dette kan være tilfældet, hvis du har oprettet en SSH-forbindelse til andre formål. I så fald authorized_keys har du registreret filen ved at åbne filen og filen med Notesblok osv. og id_rsa.pub angive indholdet af id_rsa.pub på næste linje i authorized_keys. Du kan registrere flere offentlige nøgler i authorized_keys.

Opret forbindelse til SSH

Når du opretter forbindelse til OpenSSH-kommandoen

Der er forskellige måder at oprette forbindelse til SSH på, men lad os starte med en kommandobaseret forbindelse. Faktisk er forbindelsen med det mindste antal trin ved kommando. Som en forudsætning skal du have OpenSSH-klienten installeret.

Start kommandoværktøjet efter eget valg (kommandoprompt, PowerShell, terminal).

Indtast følgende kommando:

Kommando Format

ssh -i <秘密鍵ファイルパス> -L <ローカルの空いているポート>:127.0.0.1:3389 <接続先のユーザーアカウント名>@<接続先サーバーIPアドレス、またはホスト名>

Følgende er en forklaring på parametrene. Indstil det i henhold til dit miljø.

Beskrivelse af variabelparameternavn
SSH En erklæring om at bruge SSH med OpenSSH.
-Jeg En erklæring om at bruge en privat nøglefil.
< filsti til privat nøgle> Beskriv placeringen af den private nøglefil, du har oprettet. C:\Users\<ユーザー名>\.ssh Stien er valgfri. Ellers kræves en absolut eller relativ sti.
-L Denne erklæring angiver den port, der skal bruges lokalt og eksternt, når der oprettes forbindelse til en fjerndestination.
< lokal frihavn> Forbindelse til Fjernskrivebord bruger typisk port 3389, men du kan oprette forbindelse via en hvilken som helst port. Det betyder ikke noget, hvilket nummer det er, så længe det er gratis.
127.0.0.1 Dette er værts-IP-adressen, der genkender, hvor fjerndestinationen er forbundet fra. Grundlæggende er 127.0.0.1 fint.
3389 Det portnummer, der skal bruges på fjerndestinationen. Fjerndestinationen er normalt forbundet med port 3389 med en fjernskrivebordsforbindelse, så den kan efterlades som den er.
< navnet på den brugerkonto, du vil oprette forbindelse til> Angiv, hvilken konto du vil oprette forbindelse til på fjerndestinationen.
< IP-adresse eller værtsnavn på den server, der skal oprettes forbindelse til> Angiver fjerndestinationsserveren.

Eksempel på input

ssh -i id_rsa -L 13389:127.0.0.1:3389 TestUser@52.140.221.194

Første gang bliver du bedt om en nøgle, så yes skriv og tryk på Enter.

Hvis du har indstillet en adgangssætning til din private nøgle, skal du indtaste den.

Følgende vil være i en tilsluttet tilstand. Du kan se, at brugeren på serversiden vises, ikke klienten. Mens dette vindue vises, er det tilsluttet, så luk det ikke. Hvis du lukker den, afbrydes forbindelsen.

Når du opretter forbindelse med PuTTY

Her vil vi forsøge at oprette forbindelse til SSH med et værktøj kaldet PuTTY.

Konvertering af den private nøgle

For det første, hvis du bruger PuTTY, skal du konvertere den private nøgle. Jeg tror, der er "puttygen .exe" i det vedhæftede værktøj, så start det.

Vælg "Konverteringer -> importnøgle" i menuen.

Vælg den private nøgle, du oprettede, i dette tilfælde "id_rsa".

Hvis du har angivet en adgangssætning, skal du indtaste den.

Vælg "File -> Save private key" i menuen.

「. .ppk"-fil.

Når du er oprettet, er du færdig.

Konfiguration af PuTTY

Start kitt.exe.

Angiv IP-adressen på det miljø, du vil oprette forbindelse til. Hvis du har et domæne, kan du oprette forbindelse til et domænenavn.

Vælg Forbindelse -> Data i menuen til venstre. I feltet Log automatisk på brugernavn skal du angive kontonavnet på det miljø, du vil oprette forbindelse til.

Fra menuen til venstre skal du vælge Forbindelse -> SSH -> tunneler. Indtast hver af dem i indtastningsfeltet nedenfor, og klik på knappen "Tilføj".

Bemærkninger til parameternavnværdi
Kildeport 13389 Enhver frihavn vil gøre. Jeg vil bruge det senere
Destination 127.0.0.1:3389

Når det tilføjes, skal det se sådan ud:

Vælg derefter "Forbindelse -> SSH -> Auth -> Cledentioals" i menuen til venstre og klik på knappen Gennemse for "Privat nøglefil til godkendelse".

Vælg den private nøgle, du har gemt.

Vælg "Session" i menuen til venstre, indtast et navn efter eget valg til Gem sessioner, og klik på knappen Gem. Fra næste gang og fremefter er det OK, hvis du indlæser denne indstilling.

Når du har bekræftet gemningen, skal du klikke på knappen "Åbn".

Følgende skærmbillede vises, når du opretter forbindelse for første gang. Klik på knappen Acceptér.

Du vil se en skærm, der ligner en kommandoprompt. Hvis du har et adgangsudtryk til den private nøgle, skal du indtaste det.

Hvis skærmindholdet ændres som vist nedenfor, vil det blive tilsluttet. Du kan se, at brugeren på serversiden vises, ikke klienten. Mens dette vindue vises, er det tilsluttet, så luk det ikke. Hvis du lukker den, afbrydes forbindelsen.

Opret en fjernskrivebordsforbindelse med SSH

Lad os nu oprette en fjernskrivebordsforbindelse, mens du er tilsluttet SSH.

Ved tilslutning er computerdelen ikke den faktiske fjernadresse, men "localhost:< > portnavnet, der er angivet i SSH-forbindelsen". I eksemplet blev 13389 specificeret, så her vil vi oprette forbindelse til "localhost:13389".

Hvis godkendelsesskærmen vises, kan du bedømme, at forbindelsen er fuldført. Indtast dit brugernavn og din adgangskode for at oprette forbindelse.

Hvis du kan oprette forbindelse på denne måde, er du lykkedes.

Deaktiver almindelige fjernskrivebordsforbindelser i firewallindstillinger

På tidspunktet for det forrige element kan du nu oprette forbindelse til et eksternt skrivebord ved hjælp af SSH. I denne tilstand er "Remote Desktop Connection by SSH" dog kun blevet tilføjet til "Normal Remote Desktop Connection". Med hensyn til sikkerhed tilføjer det ikke noget. Så den næste ting at gøre er at forhindre en "normal fjernskrivebordsforbindelse".

Hvis du foretager denne indstilling, kan du ikke oprette forbindelse undtagen "fjernskrivebordsforbindelse via SSH", så hvis du roder med indstillingerne, har du muligvis ikke midlerne til at oprette forbindelse eksternt. Sørg derfor for at kontrollere på forhånd, at "fjernskrivebordsforbindelse via SSH" er mulig, og være i stand til at betjene fjernmiljøet på andre måder, selvom klienten, du forsøger at oprette forbindelse til, forsvinder.

Her skal du konfigurere firewallindstillingerne i "Remote Desktop Connection via SSH". Dette skyldes, at hvis du udfører handlingen med "normal fjernskrivebordsforbindelse", afbrydes den i det øjeblik, du indstiller firewallen.

Se Windows Defender Firewall med avanceret sikkerhed. Afhængigt af Windows-versionen varierer skærmens placering, så vis den i henhold til den version.

Vælg Indgående regler i menuen til venstre.

I den midterste liste finder du "Remote Desktop - User Mode (TCP In)" og åbner dens egenskaber.

Vælg fanen Omfang, skift den lokale IP-adresse til Disse IP-adresser, og klik på knappen Tilføj.

Indtast 127.0.0.1, og klik på knappen OK. Dette forhindrer fjernskrivebordsforbindelser fra andre steder end 127.0.0.1. 127.0.0.1 er den IP-adresse, der peger på din maskine. Hvis du indtaster den forkerte værdi, kan du muligvis ikke oprette forbindelse overalt, så vær forsigtig.

Klik på OK knappen for at bekræfte.

For øjeblikket er dette alene en modforanstaltning, men lad os også indstille "Remote Desktop - User Mode (UDP Receive)".

Kontroller, at du ikke kan oprette fjernforbindelse med andet end SSH

Prøv nu at oprette en fjernskrivebordsforbindelse fra en anden pc, der ikke bruger SSH.

Hvis du kan oprette forbindelse, vises godkendelsesskærmen. Det er OK, hvis du kan bekræfte, at forbindelsen ikke kan oprettes som vist nedenfor.

Resumé

Med den nyeste Windows er det nu nemt at introducere en SSH-server. Ved at tilføje indstillinger kan du nu nemt øge sikkerheden for din fjernskrivebordsforbindelse. Men da det kun er ansvarligt for sikkerhedsforanstaltninger i Windows selv, Hvis du vil gøre det mere sikkert, synes jeg, det er at foretrække at oprette en separat SSH-server eller firewall, før du opretter forbindelse til Windows.

Du kan også indstille sikkerheden tæt ved hjælp af SSH, men når det er for svært, kan ingen oprette forbindelse på grund af en driftsfejl. Pas på ikke at ende med det.