- PowerShell giver dig mulighed for at oprette forbindelse til og administrere fjernsystemer ved hjælp af SSH indfødt i Windows 10/11 og nyere versioner.
- Det er enkelt at installere og konfigurere OpenSSH som klient og server og muliggør godkendelse med adgangskode eller offentlig nøgle baseret på sikkerhedsbehov.
- PowerShell SSHs avancerede funktioner omfatter automatisering, sessionsstyring og tilpasning, hvilket gør fjernadministration i blandede miljøer nemt.
Det er ikke længere administrationseksperter, der ønsker at oprette forbindelse via SSH direkte fra PowerShell . I dag kan enhver Windows-bruger få adgang til og administrere servere og endda automatisere opgaver via en SSH- terminal takket være de indbyggede integrationer i Windows 10 og nyere versioner. Processen er ikke kun nemmere end nogensinde før, men den er også blevet forfinet med hensyn til stabilitet og sikkerhed, hvilket gør den til et robust alternativ til traditionelle eksterne klienter.
Hvis du nogensinde har haft brug for at administrere et fjernsystem, kopiere filer, gennemgå logfiler eller køre kommandoer på en Linux- eller Windows-server uden at forlade dit skrivebord, vil denne detaljerede guide være uvurderlig. Du lærer alt fra OpenSSH-krav, installation og konfiguration på forskellige platforme til praktiske eksempler, der bruger både grundlæggende kommandoer og avancerede PowerShell SSH-funktioner for at få mest muligt ud af fjernadministration.
Hvad er SSH, og hvorfor skal man bruge det fra PowerShell?
SSH (Secure Shell) er en sikker kommunikationsprotokol, der giver adgang til og administration af eksterne systemer via en terminal . Dens største fordel i forhold til andre protokoller som Telnet er end-to-end-kryptering, som sikrer, at alle oplysninger, inklusive brugernavne og adgangskoder, er fuldt beskyttet under transmission.
PowerShell er på sin side Windows' avancerede kommandolinjegrænseflade , der bruges til både bruger- og administrationsopgaver. I flere år har Windows integreret en indbygget SSH-klient, der giver brugerne mulighed for at udnytte SSH's fulde kraft direkte fra PowerShell, hvilket letter den enkle og sikre administration af Linux, Windows og andre eksterne enheder.
Forudsætninger for brug af SSH fra PowerShell

Før du begynder at administrere fjernsystemer fra PowerShell, skal du kontrollere nogle grundlæggende krav på din computer og målcomputeren:
- PowerShell opdateret: Det anbefales at bruge PowerShell 6 eller nyere for at drage fordel af alle funktionerne. I Windows 10 og 11 er den forudinstalleret, men det er en god idé at tjekke versionen med kommandoen $ PSVersionTable.PSVersion.
- OpenSSH-klient: Du skal have OpenSSH-klienten installeret. Fra og med Windows 10 (build 1809) og Windows Server 2019 er det inkluderet som en valgfri funktion, selvom du kan installere det manuelt, hvis det er nødvendigt.
- SSH-server aktiveret på fjerncomputeren: Det system, du vil oprette forbindelse til, skal have SSH aktiveret (dette kan være en Linux-maskine, Windows-maskine, netværksenhed osv.).
- Netværksadgang: Den computer, du opretter forbindelse fra, skal kunne nå SSH-serverens IP-adresse eller domæne, og det er afgørende, at port 22 er åben på din firewall.
- Brugeren tillader: Selvom det ikke altid er nødvendigt at være administrator, vil du i mange scenarier have brug for udvidede tilladelser for at installere funktioner eller få adgang til eksterne systemer.
Kontroller OpenSSH-installation og -version på Windows
For at kontrollere, om du har OpenSSH-klienten tilgængelig på dit system, skal du åbne PowerShell og køre:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Statussen vil vise som installeret eller ikke til stede for både klienten og serveren. Hvis den ikke er installeret, kan du tilføje den med:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
For serveren, hvis du vil aktivere modtagelse af SSH-forbindelser på din egen computer:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Når den er installeret, kan du bruge kommandoen 'ssh' direkte i PowerShell eller kommandoprompten.
Konfigurer og start SSH-tjenesten på Windows
Hvis du vil acceptere SSH-forbindelser på Windows, skal du sørge for, at tjenesten er startet. For at starte det og konfigurere det til at starte automatisk hver gang du starter systemet, skal du køre:
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Det anbefales at kontrollere, at der allerede findes en firewallregel, der tillader indgående trafik via port 22 (SSH):
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
Introduktion: Oprettelse af forbindelse via SSH fra PowerShell
Når du har konfigureret alt, kan du starte en SSH-session med en simpel PowerShell-kommando:
ssh usuario@servidor
Husk at erstatte 'brugernavn' med dit brugernavn på den eksterne maskine og 'server' med IP-adressen eller DNS-navnet. Når du kører det, vil det bede dig om at acceptere værtsnøglen (første gang) og adgangskoden.
Eksemplet på en rigtig forbindelse til en Linux-server:
ssh [email protected]
Du kan også oprette forbindelse til andre Windows-systemer med en aktiv SSH-server eller til kompatible netværksenheder.
Avancerede parametre og nøglegodkendelse
SSH giver stor fleksibilitet i, hvordan du autentificerer og etablerer en forbindelse. De mest almindelige parametre er:
- -i Sådan angiver du en privat nøgle til adgangskodefri godkendelse:
ssh -i ruta/claves/id_rsa usuario@servidor - -p Sådan angiver du en anden port end 22:
ssh -p 2222 usuario@servidor - -v til verbose-tilstand, nyttig til fejlfinding.
I PowerShell kan du bruge nøgler genereret med ssh-keygen og kopiere dem til den eksterne server for ekstra sikkerhed og bekvemmelighed, så du undgår adgangskoder.
Administrer og automatiser avancerede SSH-sessioner med PowerShell
Ud over grundlæggende kommandoer inkluderer PowerShell avancerede cmdlets til at arbejde med SSH-sessioner, såsom New-PSSession, Enter-PSSession og Invoke-Command . Dette forbedrer fjernadministration, så du kan automatisere scripts og vedligeholdelsesopgaver uden at kræve manuel login hver gang.
- Ny-PSSession giver dig mulighed for at oprette en ny fjernsession ved at angive vært, bruger og adgangskode eller offentlig nøgle.
- Indtast-PSSession giver dig mulighed for interaktivt at deltage i en fjernsession og udføre kommandoer, som om du fysisk var ved den anden computer.
- Invoke-Command udfører kommandoer eller scriptblokke eksternt, ideel til masseadministration eller automatiserede opgaver.
Eksempel på at starte en session:
New-PSSession -HostName 192.168.1.100 -UserName admin
For at åbne den oprettede session:
Enter-PSSession -Session $session
Du kan overføre filer, overvåge processer, automatisere opgaver og meget mere, alt sammen fra PowerShells bekvemmelighed.
Konfigurer SSH-server på Linux og macOS til PowerShell-forbindelser
Du kan ikke blot administrere Windows-computere fra PowerShell, men du kan også få adgang til Linux- og macOS-servere. På disse computere skal du sørge for, at OpenSSH-tjenesten er installeret og kører. Sådan gøres det i Linux (for eksempel Ubuntu):
sudo apt install openssh-client
sudo apt install openssh-server
For at kontrollere, om den er aktiv:
sudo systemctl status sshd
På macOS skal du blot aktivere fjernadgang fra 'Deling' – 'Fjernlogin' i systemindstillingerne.
I begge tilfælde kan du redigere sshd_config-filen for at tillade godkendelse med adgangskode eller offentlig nøgle og endda indstille PowerShell som standardshell.
Nyttige SSH-kommandoer fra PowerShell
Når den er tilsluttet, er det muligt at udføre en bred vifte af fjernsystemkommandoer. Nogle nyttige eksempler til den daglige ledelse:
- ls / dir: liste indholdet af en mappe
- cd: skift mappe
- berøring / Ny vare: opretter nye filer
- rm / Fjern-element: sletter filer eller mapper
- mv / Flyt-elementFlyt eller omdøb filer
- scpoverfører filer mellem klient og server
- brugeraddtilføj brugere
Disse kommandoer muliggør komplet administration, automatisering og scripting til gentagne opgaver eller komplekse infrastrukturer.
Avanceret konfiguration og tilpasning af SSH-sessioner i PowerShell
PowerShell SSH tilbyder mange avancerede muligheder for at tilpasse oplevelsen til dine behov:
- Rediger konfigurationsfilen i $env:ProgramData\ssh\sshd_config for at finjustere godkendelse, algoritmer, regler og mere.
- Tillad eller bloker adgang med adgangskode eller offentlig nøgle i henhold til sikkerhedsbehov.
- Tilføj undersystemer som PowerShell at få eksterne sessioner til at starte direkte i PowerShell ved hjælp af 'Subsystem powershell c:/progra~1/powershell/7/pwsh.exe -sshs -nologo'.
- Genstart tjenester og juster miljøvariabler så alt fungerer korrekt.
Passioneret forfatter om bytes-verdenen og teknologien generelt. Jeg elsker at dele min viden gennem skrivning, og det er det, jeg vil gøre i denne blog, vise dig alle de mest interessante ting om gadgets, software, hardware, teknologiske trends og mere. Mit mål er at hjælpe dig med at navigere i den digitale verden på en enkel og underholdende måde.