Konfigurera PowerShell SSH Remoting i PowerShell 6

Med PowerShell version 6 introducerade Microsoft PowerShell Remoting over SSH, vilket gör det möjligt att använda PowerShell Remoting på flera plattformar mellan Linux, macOS och Windows. PowerShell SSH Remoting skapar en PowerShell värdprocess på målmaskinen som ett SSH-subsystem. Normalt använder PowerShell remoting WinRM för anslutningsförhandling och datatransport, men WinRM är endast tillgängligt på Windows-baserade maskiner.

Det finns också några nackdelar med det. SSH-baserad fjärrstyrning har för närvarande inte stöd för konfiguration av fjärrslutpunkter och JEA (Just Enough Administration). Det är också viktigt att förstå att detta inte bara är ännu en PowerShell SSH-klient.

Använd SSH Transport med PowerShell Remoting

För att använda PowerShell remoting med SSH kan du använda samma cmdlets som du känner till från PowerShell remoting med WinRM.

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

Det finns 3 nya parametrar för dessa cmdlets, om du använder PowerShell SSH remoting.

  • -HostName (Istället för -Computername, definierar du SSH-målet)
  • -UserName (Istället för -Credentials använder du parametern -UserName)
  • -KeyFilePath (Om du använder SSH-nyckelautentisering kan du använda parametern -KeyFilePath-parametern för att peka på nyckelfilen)
 New-PSSession -HostName tomsssh.server.com -UserName thomas

Setup PowerShell SSH Remoting

För att arbeta med PowerShell SSH, måste du utföra följande steg på alla system och maskiner.

  • Installera OpenSSH Server och Client
    • OpenSSH för Windows är tillgängligt direkt i Windows 10 (1809) och Windows Server 2019 som en valfri funktion.
    • På Linux installerar du OpenSSH beroende på din plattform
  • Installera PowerShell 6 på alla system
  • Konfigurera SSH-subsystemet för att vara värd för en PowerShell-process på fjärrmaskinen
  • Konfigurera lösenords- eller nyckelbaserad autentisering

Steg-för-steg-installation av SSH-fjärrstyrning på Windows

Steg 1: Först måste du installera PowerShell 6 på Windows. Du kan följa mitt blogginlägg för att enkelt installera PowerShell 6.

Installera PowerShell 6

Steg 2: Installera OpenSSH Client och Open SSH Server. För att installera klient och server och initialt konfigurera OpenSSH-servern kan du använda följande 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

Steg 2.1: Eftersom det för närvarande finns ett fel i OpenSSH för Windows accepterar sökvägen inte mellanslag. Du måste skapa en symbolisk länk till en katalog utan mellanslag. Kör följande kommando på målsystemet.

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

Steg 3: Konfigurera och redigera filen sshd_config som finns i $env:ProgramData\ssh på målmaskinen.

Redigera sshd_config

Kontrollera att lösenordsautentisering är aktiverad

PasswordAuthentication yes

Lägg till undersystemet för PowerShell

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

Optionellt aktivera nyckelautentisering

PubkeyAuthentication yes

Om du är intresserad av att konfigurera nyckelbaserad autentisering med OpenSSH på Windows Server kan du kolla in blogginlägget på ITOpstalk.com av Orin Thomas (Microsoft Cloud Advocate).

Steg 4: Starta om sshd-tjänsten

 Restart-Service sshd

Steg för steg Konfigurera SSH-remoting på Linux (Ubuntu 18.04)

Steg 1: Först måste du installera PowerShell 6 på Linux. Du kan följa mitt blogginlägg för att enkelt installera PowerShell 6.

Installera PowerShell 6 Linux

Steg 2: Installera OpenSSH Client och Open SSH Server. För att installera klient och server och initialt konfigurera OpenSSH-servern kan du använda följande kommandon.

sudo apt install openssh-clientsudo apt install openssh-server

Steg 3: Konfigurera och redigera filen sshd_config på platsen /etc/ssh på målmaskinen.

Kontrollera att lösenordsautentisering är aktiverad

PasswordAuthentication yes

Lägg till undersystemet för PowerShell

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

Optionellt aktivera nyckelautentisering

PubkeyAuthentication yes

Steg 4: Starta om tjänsten sshd

 sudo service sshd restart

SSH Remoting with PowerShell 6

Nu kan du börja använda PowerShell SSH remoting för att ansluta även från olika operativsystem, t.ex. Windows till Linux eller Linux till Windows. PowerShell 6 SSH Remoting

Som tidigare nämnts kan du använda samma kommandon som du känner till som New-PSSession, Enter-PSSession eller Invoke-Command.

PowerShell SSH Remoting Linux till Windows

Som klient kan du också använda Azure Cloud Shell, som kör PowerShell 6

Självklart kan du också använda PowerShell SSH Remoting för att ansluta från Linux till Linux och Windows till Windows. Du hittar mer information om PowerShell SSH remoting på Microsoft Docs-sidorna. Om du har några frågor får du gärna höra av dig i kommentarerna.

Taggar: Microsoft, PowerShell, PowerShell 6, PowerShell Core, PowerShell over SSH, Powershell Remoting, setup, Setup SSH PowerShell, SSH, SSH PowerShell, SSH Transport Senaste ändring: Sist ändrad: April 4, 2019

Lämna ett svar

Din e-postadress kommer inte publiceras.