Setup PowerShell SSH Remoting in PowerShell 6

Met PowerShell versie 6 introduceerde Microsoft PowerShell Remoting over SSH, waarmee echte multiplatform PowerShell remoting tussen Linux, macOS en Windows mogelijk is. PowerShell SSH Remoting creëert een PowerShell host proces op de doelmachine als een SSH subsysteem. Normaal gesproken gebruikt PowerShell remoting WinRM voor verbindingsonderhandeling en gegevenstransport, maar WinRM is alleen beschikbaar op Windows gebaseerde machines.

Er zitten ook een paar nadelen aan. SSH-gebaseerde remoting ondersteunt op dit moment niet de configuratie van eindpunten op afstand en JEA (Just Enough Administration). Het is ook belangrijk om te begrijpen, dat dit niet zomaar een PowerShell SSH client is.

Gebruik SSH Transport met PowerShell Remoting

Om PowerShell remoting met SSH te gebruiken, kunt u dezelfde cmdlets gebruiken, die u kent van PowerShell remoting met WinRM.

  • New-PSSession
  • Enter-PSSession
  • Invoke-Command

Er zijn 3 nieuwe parameters voor deze cmdlets, als u PowerShell SSH remoting gebruikt.

  • -HostName (In plaats van -Computername, definieert u het SSH-doel)
  • -UserName (In plaats van -Credentials gebruikt u de parameter -UserName)
  • -KeyFilePath (Als u SSH-sleutelauthenticatie gebruikt, kunt u met de -KeyFilePath parameter gebruiken om naar het sleutelbestand te verwijzen)
 New-PSSession -HostName tomsssh.server.com -UserName thomas

Setup PowerShell SSH Remoting

Om met PowerShell SSH te werken, moet u de volgende stappen op alle systemen en machines uitvoeren.

  • Installeer OpenSSH Server en Client
    • OpenSSH voor Windows is direct beschikbaar in Windows 10 (1809) en Windows Server 2019 als een optionele functie.
    • Op Linux installeert u OpenSSH, afhankelijk van uw platform
  • Installeer PowerShell 6 op alle systemen
  • Configureer het SSH-subsysteem om een PowerShell-proces op de externe machine te hosten
  • Configureer wachtwoord- of sleutelgebaseerde authenticatie

Step by step setup SSH remoting on Windows

Step 1: Eerst moet u PowerShell 6 installeren op Windows. U kunt mijn blogbericht volgen om PowerShell 6 eenvoudig te installeren.

Installeer PowerShell 6

Step 2: Installeer OpenSSH Client en Open SSH Server. Om de client en server te installeren en de OpenSSH-server in eerste instantie te configureren, kunt u het volgende commando gebruiken.

 # 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

Stap 2.1: Omdat er momenteel een bug zit in OpenSSH voor Windows, accepteert het pad geen spaties. U moet een symlink maken naar een directory zonder spaties. Voer het volgende commando uit op het doelsysteem.

 mklink /D c:\pwsh "C:\Program Files\PowerShell"

Step 3: Configureer en bewerk het sshd_config bestand dat zich bevindt in $env:ProgramData\ssh op de doelmachine.

Bewerk sshd_config

Controleer of wachtwoordauthenticatie is ingeschakeld

PasswordAuthentication yes

Subsysteem voor PowerShell toevoegen

Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile

Optioneel sleutelauthenticatie inschakelen

PubkeyAuthentication yes

Als u geïnteresseerd bent in het instellen van sleutelauthenticatie met OpenSSH op Windows Server, bekijk dan de blogpost op ITOpstalk.com door Orin Thomas (Microsoft Cloud Advocate).

Stap 4: Herstart de sshd service

 Restart-Service sshd

Step by step Setup SSH remoting on Linux (Ubuntu 18.04)

Stap 1: Eerst moet u PowerShell 6 installeren op Linux. U kunt mijn blogbericht volgen om PowerShell 6 eenvoudig te installeren.

Installeer PowerShell 6 Linux

Step 2: Installeer OpenSSH Client en Open SSH Server. Om client en server te installeren en de OpenSSH-server in eerste instantie te configureren, kunt u de volgende opdrachten gebruiken.

sudo apt install openssh-clientsudo apt install openssh-server

Stap 3: Configureer en bewerk het bestand sshd_config op de locatie /etc/ssh op de doelmachine.

Controleer of wachtwoord authenticatie is ingeschakeld

PasswordAuthentication yes

Subsysteem voor PowerShell toevoegen

Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile

Optioneel sleutel authenticatie inschakelen

PubkeyAuthentication yes

Step 4: Herstart de sshd service

 sudo service sshd restart

SSH Remoting met PowerShell 6

Nu kunt u PowerShell SSH remoting gaan gebruiken om zelfs verbinding te maken vanaf verschillende besturingssystemen zoals Windows naar Linux of Linux naar Windows. PowerShell 6 SSH Remoting

Zoals eerder vermeld, kunt u dezelfde commando’s gebruiken als u gewend bent, zoals New-PSSession, Enter-PSSession of Invoke-Command.

PowerShell SSH Remoting Linux to Windows

Als client kunt u ook de Azure Cloud Shell gebruiken, waarop PowerShell 6 wordt uitgevoerd

U kunt natuurlijk ook de PowerShell SSH remoting gebruiken om verbinding te maken van Linux naar Linux en van Windows naar Windows. U kunt meer informatie vinden over PowerShell SSH remoting op de Microsoft Docs pagina’s. Als je vragen hebt, laat het me dan weten in de comments.

Tags: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Laatst gewijzigd: April 4, 2019

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.