Med PowerShell version 6 introducerede Microsoft PowerShell Remoting over SSH, som giver mulighed for ægte PowerShell Remoting på flere platforme mellem Linux, macOS og Windows. PowerShell SSH Remoting opretter en PowerShell-værtsproces på målmaskinen som et SSH-undersystem. Normalt bruger PowerShell remoting WinRM til forbindelsesforhandling og datatransport, men WinRM er kun tilgængelig på Windows-baserede maskiner.
Der er også nogle ulemper ved det. SSH-baseret remoting understøtter i øjeblikket ikke fjernkonfiguration af slutpunktet og JEA (Just Enough Administration). Det er også vigtigt at forstå, at dette ikke bare er endnu en PowerShell SSH-klient.
Brug SSH Transport med PowerShell Remoting
For at bruge PowerShell remoting med SSH kan du bruge de samme cmdlets, som du kender fra PowerShell remoting med WinRM.
- New-PSSession
- Enter-PSSession
- Invoke-Command
Der er 3 nye parametre til disse cmdlets, hvis du bruger PowerShell SSH-remoting.
- -HostName (I stedet for -Computername, definerer du SSH-målet)
- -UserName (I stedet for -Credentials bruger du parameteren -UserName)
- -KeyFilePath (Hvis du bruger SSH-nøglegodkendelse, kan du bruge parameteren -KeyFilePath-parameteren til at pege på nøglefilen)
New-PSSession -HostName tomsssh.server.com -UserName thomas
Sæt PowerShell SSH Remoting op
For at arbejde med PowerShell SSH, skal du gennemføre følgende trin på alle systemer og maskiner.
- Installer OpenSSH Server og klient
- OpenSSH til Windows er tilgængelig direkte i Windows 10 (1809) og Windows Server 2019 som en valgfri funktion.
- På Linux installerer du OpenSSH afhængigt af din platform
- Installer PowerShell 6 på alle systemer
- Konfigurer SSH-undersystemet til at være vært for en PowerShell-proces på fjernmaskinen
- Konfigurer adgangskode- eller nøglebaseret godkendelse
Step by step-opsætning af SSH-remoting på Windows
Step 1: Først skal du installere PowerShell 6 på Windows. Du kan følge mit blogindlæg for nemt at installere PowerShell 6.
Stræk 2: Installer OpenSSH Client og Open SSH Server. For at installere klient og server og indledningsvis konfigurere OpenSSH-serveren kan du bruge følgende kommando.
# Install the OpenSSH Client and Server Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # Initial Configuration of SSH Server Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' # Confirm the Firewall rule is configured. It should be created automatically by setup. Get-NetFirewallRule -Name *ssh* # There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
Stræk 2.1: Da der i øjeblikket er en fejl i OpenSSH for Windows, accepterer stien ikke mellemrum. Du er nødt til at oprette et symlink til en mappe uden mellemrum. Kør følgende kommando på målsystemet:
mklink /D c:\pwsh "C:\Program Files\PowerShell"
Stræk 3: Konfigurer og rediger filen sshd_config, der ligger på $env:ProgramData\ssh på målmaskinen.
Kontroller, at adgangskodegodkendelse er aktiveret
PasswordAuthentication yes
Tilføj undersystemet til PowerShell
Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Optionel aktiver nøglegodkendelse
PubkeyAuthentication yes
Hvis du er interesseret i at konfigurere nøglebaseret godkendelse med OpenSSH på Windows Server, skal du tjekke blogindlægget på ITOpstalk.com af Orin Thomas (Microsoft Cloud Advocate).
Stræk 4: Genstart sshd-tjenesten
Restart-Service sshd
Step by step Setup SSH remoting on Linux (Ubuntu 18.04)
Stræk 1: Først skal du installere PowerShell 6 på Linux. Du kan følge mit blogindlæg for nemt at installere PowerShell 6.
Stræk 2: Installer OpenSSH Client og Open SSH Server. For at installere klient og server og indledningsvis konfigurere OpenSSH-serveren kan du bruge følgende kommandoer.
sudo apt install openssh-clientsudo apt install openssh-server
Stræk 3: Konfigurer og rediger filen sshd_config på placeringen /etc/ssh på målmaskinen.
Kontroller, at adgangskodegodkendelse er aktiveret
PasswordAuthentication yes
Føj undersystemet til PowerShell
Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
Optionel aktiver nøglegodkendelse
PubkeyAuthentication yes
Stræk 4: Genstart sshd-tjenesten
sudo service sshd restart
SSH Remoting med PowerShell 6
Nu kan du begynde at bruge PowerShell SSH remoting til at oprette forbindelse selv fra forskellige styresystemer som Windows til Linux eller Linux til Windows.
Som nævnt tidligere kan du bruge de samme kommandoer, som du er bekendt med, såsom New-PSSession, Enter-PSSession eller Invoke-Command.
Som klient kan du også bruge Azure Cloud Shell, som kører PowerShell 6
Selvfølgelig kan du også bruge PowerShell SSH Remoting til at oprette forbindelse fra Linux til Linux og fra Windows til Windows. Du kan finde flere oplysninger om PowerShell SSH remoting på Microsoft Docs-siderne. Hvis du har spørgsmål, er du velkommen til at give mig besked i kommentarerne.
Tags: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, opsætning, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Sidst ændret: “PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell April 4, 2019