Opsætning af PowerShell SSH Remoting i PowerShell 6

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.

Installer 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.

Rediger sshd_config

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.

Install PowerShell 6 Linux

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. PowerShell 6 SSH Remoting

Som nævnt tidligere kan du bruge de samme kommandoer, som du er bekendt med, såsom New-PSSession, Enter-PSSession eller Invoke-Command.

PowerShell SSH Remoting Linux til Windows

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.